Boost logo

Boost :

From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2005-06-22 07:31:40


Synopsis:
---------

namespace boost
{
   namespace function_type
   {
     // Result: bool, Concept: MPL-Integral Constant
     template<typename T, typename QueryTag = undecorated>
     struct is_function_;

     // Result: bool, Concept: MPL-Integral Constant
     template<typename T> struct is_function_pointer;
     template<typename T> struct is_function_reference;
     template<typename T> struct is_member_function_pointer_;

     // Concept: Tag
     template<typename T> struct kind_of<T>;

     // Result: bool, Concept: MPL-Integral Constant
     template<typename Tag1_or_Signature, typename QueryTag> struct represents;

     // Result: bool, Concept: MPL-Integral Constant
     template<typename T> struct arity<T>;

     // Result: type, Concept: Metafunction
     template<typename T, typename Index> struct parameter;
     template<typename T, std::size_t Index> struct parameter_c;

     // Result: type, Concept: Metafunction
     template<typename T> struct class_of;

     // Result: type, Concept: Metafunction
     template<typename T> struct result;

     // Result: type, Concept: Metafunction
     template<typename T, typename Index> struct effective_parameter;
     template<typename T, std::size_t Index> struct effective_parameter_c;

     // Concept: MPL Random-Access Sequence
     template<typename T> struct parameters;

     // Concept: MPL Random-Access Sequence
     template<typename T, typename ClassT = add_reference<_> >
     struct effective_parameters;

     // Concept: MPL Extensible/Random-Access Sequence
     template<typename T, typename ClassT = add_reference<_> >
     struct signature;

     // Result: type, Concept: Metafunction
     template<typename T_or_Signature_or_Seq
             ,typename Tag = undecorated, typename ClassT = add_reference<_> >
     struct function_type;

     // Concept: Tag
     template<typename Tag1_or_Signature, typename Tag2 = ...
     struct tag;

     // Aspect tags

     // - decoration aspect
     typedef /.../ unspecified_decoration; // (*) (default)
     typedef /.../ unbound; // (*) (matches the next three)
     typedef /.../ undecorated;
     typedef /.../ pointer;
     typedef /.../ reference;
     typedef /.../ member_pointer;
     // (*) abstract - same as 'undecorated' when used for synthesis

     // - variadic aspect
     typedef /.../ unspecified_variadic; // (*) (default)
     typedef /.../ non_variadic;
     typedef /.../ variadic;
     // (*) abstract - same as 'non_variadic' when used for synthesis

     // - const aspect
     typedef /.../ unspecified_constness; // (*) (default)
     typedef /.../ const_;
     typedef /.../ non_const;
     // (*) abstract - same qualfication as the class type when used for synthesis

     // - volatile aspect
     typedef /.../ unspecified_volatility; // (*) (default)
     typedef /.../ volatile_;
     typedef /.../ non_volatile;
     // (*) abstract - same qualfication as the class type when used for synthesis

     // Calling convention aspect
     typedef /.../ unspecified_call; // (*) (default)
     typedef /.../ cdecl, stdcall, etc. (depends on configuration)
     // (*) abstract - uses the default calling convention when used for synthesis
   }
}


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk