Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
free.hpp File Reference
Include dependency graph for free.hpp:

Classes

struct  boost::type_erasure::index_list< N >
 
struct  boost::type_erasure::detail::first_placeholder< T >
 
struct  boost::type_erasure::detail::first_placeholder< T0, T...>
 
struct  boost::type_erasure::detail::first_placeholder<>
 
struct  boost::type_erasure::detail::first_placeholder_index< T >
 
struct  boost::type_erasure::detail::first_placeholder_index< T0, T...>
 
struct  boost::type_erasure::detail::transform_free_signature< Sig >
 
struct  boost::type_erasure::detail::push_back_index< T, N >
 
struct  boost::type_erasure::detail::push_back_index< index_list< N...>, X >
 
struct  boost::type_erasure::detail::make_index_list< N >
 
struct  boost::type_erasure::detail::make_index_list< 0 >
 

Namespaces

 boost
 Duration formatting facet for input.
 
 boost::type_erasure
 
 boost::type_erasure::detail
 

Macros

#define BOOST_TYPE_ERASURE_FREE_II(qual_name, concept_name, function_name, N)
 INTERNAL ONLY. More...
 
#define BOOST_TYPE_ERASURE_FREE_I(namespace_name, concept_name, function_name, N)   BOOST_TYPE_ERASURE_FREE_II(namespace_name, concept_name, function_name, N)
 INTERNAL ONLY. More...
 
#define BOOST_TYPE_ERASURE_FREE(qualified_name, function_name, N)
 Defines a primitive concept for a free function. More...
 

Macro Definition Documentation

#define BOOST_TYPE_ERASURE_FREE (   qualified_name,
  function_name,
  N 
)
Value:
qualified_name, \
BOOST_PP_SEQ_ELEM(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(qualified_name)), qualified_name), \
function_name, \
N)
#define BOOST_PP_DEC(x)
Definition: dec.hpp:24
#define BOOST_PP_SEQ_ELEM(i, seq)
Definition: elem.hpp:24
#define N
Definition: forward_adapter.hpp:198
#define BOOST_TYPE_ERASURE_FREE_I(namespace_name, concept_name, function_name, N)
INTERNAL ONLY.
Definition: free.hpp:275
#define BOOST_PP_SEQ_SIZE(seq)
Definition: size.hpp:28

Defines a primitive concept for a free function.

Parameters
qualified_nameshould be a preprocessor sequence of the form (namespace1)(namespace2)...(concept_name).
function_nameis the name of the function.
Nis the number of arguments of the function.

The declaration of the concept is

1 template<class Sig>
2 struct ::namespace1::namespace2::...::concept_name;

where Sig is a function type giving the signature of the function.

This macro can only be used in the global namespace.

Example:

1 BOOST_TYPE_ERASURE_FREE((boost)(has_to_string), to_string, 1)
#define BOOST_TYPE_ERASURE_FREE_I (   namespace_name,
  concept_name,
  function_name,
  N 
)    BOOST_TYPE_ERASURE_FREE_II(namespace_name, concept_name, function_name, N)

INTERNAL ONLY.

#define BOOST_TYPE_ERASURE_FREE_II (   qual_name,
  concept_name,
  function_name,
  N 
)

INTERNAL ONLY.