starting quickbook docs

This commit is contained in:
badair
2016-03-30 23:29:47 -05:00
parent 651caff4fa
commit b4876a158a
5 changed files with 192 additions and 3 deletions

View File

@@ -56,12 +56,18 @@ namespace callable_traits {
template<typename General>
struct function_object
: public std::conditional<
: std::conditional<
has_normal_call_operator<typename General::type>::value,
pmf<decltype(&default_normal_callable<typename General::type>::operator())>,
ambiguous_function_object<General>
>::type {
using base = typename std::conditional<
has_normal_call_operator<typename General::type>::value,
pmf<decltype(&default_normal_callable<typename General::type>::operator())>,
ambiguous_function_object<General>
>::type;
using type = typename General::original_type;
using general_type = typename General::type;

View File

@@ -36,12 +36,17 @@ struct pmf<Return(T::*)(Args...) QUAL>
using return_type = Return; \
using arg_types = std::tuple<Args...>; \
using type = Return(T::*)(Args...) QUAL; \
using invoke_type = typename std::conditional< \
std::is_rvalue_reference<T QUAL>::value, \
T QUAL, \
typename std::add_lvalue_reference<T QUAL>::type \
>::type; \
\
using function_type = Return(Args...); \
using abominable_type = Return(Args...) QUAL; \
using remove_varargs = type; \
using add_varargs = Return(CALLABLE_TRAITS_VARARGS_CC T::*)(Args..., ...) QUAL; \
using class_type = T; \
using invoke_type = T QUAL; \
\
using qualifiers = qualifier_traits<dummy QUAL>; \
template<flags Flags> \
@@ -87,12 +92,18 @@ struct pmf<Return(CALLABLE_TRAITS_VARARGS_CC T::*)(Args..., ...) QUAL>
using return_type = Return; \
using arg_types = std::tuple<Args...>; \
using type = Return(CALLABLE_TRAITS_VARARGS_CC T::*)(Args..., ...) QUAL; \
\
using invoke_type = typename std::conditional< \
std::is_rvalue_reference<T QUAL>::value, \
T QUAL, \
typename std::add_lvalue_reference<T QUAL>::type \
>::type; \
\
using function_type = Return(Args..., ...); \
using abominable_type = Return(Args..., ...) QUAL; \
using remove_varargs = Return(T::*)(Args...) QUAL; \
using add_varargs = type; \
using class_type = T; \
using invoke_type = T QUAL; \
\
using qualifiers = qualifier_traits<dummy QUAL>; \
\