concepts.hpp
Go to the documentation of this file.
Utility classes for definining and using concepts lite in C++11.
ABL_CONCEPT_SPEC(State)
Concept for a type that can be used as a state of a reducing function.
Definition: concepts.hpp:42
auto state_unwrap(T &&s) -> decltype(state_traits_t< T >::unwrap(std::forward< T >(s)))
Convenience function for calling state_traits::unwrap
Definition: state_traits.hpp:136
auto constantly(T &&value) -> constantly_t< estd::decay_t< T > >
Similar to clojure.core/constantly.
Definition: constantly.hpp:56
estd::enable_if_t< Requirement, int > require
Utility to define concepts in terms of other concepts or other kinds boolean requirements.
Definition: concept.hpp:110
estd::enable_if_t< if_any< T, Mfs... >::type::value, int > require_any
Like require, but based on the semantics of if_any.
Definition: concept.hpp:282
auto state_data(T &&s, D &&d) -> decltype(state_traits_t< T >::data(std::forward< T >(s), std::forward< D >(d)))
Convenience function for calling state_traits::data
Definition: state_traits.hpp:127
Definition: concept.hpp:167
MPL-compatible sequence that just holds a vector of types as a paremeter pack.
Definition: pack.hpp:57
void expressions(Ts &&...)
Allows to validate a sequence of expressions in a single decltype.
auto state_complete(T &&s) -> decltype(state_traits_t< T >::complete(std::forward< T >(s)))
Convenience function for calling state_traits::complete
Definition: state_traits.hpp:110
auto state_is_reduced(T &&s) -> bool
Convenience function for calling state_traits::is_reduced
Definition: state_traits.hpp:118