concepts

The contents of this module can be included with the header hpx/modules/concepts.hpp. These headers may be used by user-code but are not guaranteed stable (neither header location nor contents). You are using these at your own risk. If you wish to use non-public functionality from a module we strongly suggest only including the module header hpx/modules/concepts.hpp, not the particular header in which the functionality you would like to use is defined. See Public API for a list of names that are part of the public HPX API.

Header hpx/concepts/concepts.hpp

Defines

HPX_CONCEPT_REQUIRES_(...)
HPX_CONCEPT_REQUIRES(...)
HPX_CONCEPT_ASSERT(...)

Header hpx/concepts/has_member_xxx.hpp

Defines

HPX_HAS_MEMBER_XXX_TRAIT_DEF(MEMBER)

This macro creates a boolean unary metafunction which result is true if and only if its parameter type has member function with MEMBER name (no matter static it is or not). The generated trait ends up in a namespace where the macro itself has been placed.

Header hpx/concepts/has_xxx.hpp

Defines

HPX_HAS_XXX_TRAIT_DEF(Name)

This macro creates a boolean unary metafunction such that for any type X, has_name<X>::value == true if and only if X is a class type and has a nested type member x::name. The generated trait ends up in a namespace where the macro itself has been placed.