
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 } }