This commit is contained in:
Barrett Adair
2016-03-29 13:17:37 -05:00
3 changed files with 4 additions and 36 deletions

View File

@@ -187,8 +187,6 @@ namespace callable_traits {
template<typename T, std::size_t SearchLimit = 10>
struct function_object_min_arity {
private:
static constexpr int precient_arity = arg_tuple_size<
typename T::arg_types
>::value;
@@ -197,8 +195,6 @@ namespace callable_traits {
T, SearchLimit, void
>::arg_count;
public:
static constexpr int value =
precient_arity == -1
|| (tentative_min_arity < precient_arity && tentative_min_arity >= 0)
@@ -208,8 +204,6 @@ namespace callable_traits {
template<typename T, std::size_t SearchLimit>
struct function_object_max_arity {
private:
static constexpr int precient_arity = arg_tuple_size<
typename T::arg_types
>::value;
@@ -218,8 +212,6 @@ namespace callable_traits {
T, std::make_index_sequence<SearchLimit>
>::arg_count;
public:
static constexpr int value =
precient_arity == -1 || tentative_max_arity > precient_arity
? tentative_max_arity : precient_arity;

View File

@@ -23,9 +23,7 @@ Distributed under the Boost Software License, Version 1.0.
\
template<typename Return, typename... Args> \
struct function<Return(Args...) QUAL> \
: public qualifier_traits<dummy QUAL> { \
\
public: \
: qualifier_traits<dummy QUAL> { \
\
static constexpr bool value = true; \
using has_varargs = std::false_type; \
@@ -52,14 +50,10 @@ public:
using is_abominable_function = std::integral_constant<bool, \
!std::is_same<abominable_type, function_type>::value>; \
\
private: \
\
using qualifiers = qualifier_traits<dummy QUAL>; \
template<flags Flags> \
using set_qualifiers = set_function_qualifiers<Flags, Return, Args...>; \
\
public: \
\
using remove_reference = set_qualifiers<qualifiers::cv_flags>; \
using add_lvalue_reference = set_qualifiers<qualifiers::q_flags | lref_>; \
using add_rvalue_reference = set_qualifiers<qualifiers::q_flags | rref_>; \
@@ -84,9 +78,7 @@ public:
\
template<typename Return, typename... Args> \
struct function<Return (Args..., ...) QUAL> \
: public qualifier_traits<dummy QUAL> { \
\
public: \
: qualifier_traits<dummy QUAL> { \
\
static constexpr bool value = true; \
using has_varargs = std::true_type; \
@@ -109,15 +101,11 @@ public:
using class_type = invalid_type; \
using invoke_type = invalid_type; \
\
private: \
\
using qualifiers = qualifier_traits<dummy QUAL>; \
\
template<flags Flags> \
using set_qualifiers = set_varargs_function_qualifiers<Flags, Return, Args...>; \
\
public: \
\
using remove_reference = set_qualifiers<qualifiers::cv_flags>; \
using add_lvalue_reference = set_qualifiers<qualifiers::q_flags | lref_>; \
using add_rvalue_reference = set_qualifiers<qualifiers::q_flags | rref_>; \

View File

@@ -19,9 +19,7 @@ Distributed under the Boost Software License, Version 1.0.
\
template<typename Return, typename T, typename... Args> \
struct pmf<Return(T::*)(Args...) QUAL> \
: public qualifier_traits<dummy QUAL> { \
\
public: \
: qualifier_traits<dummy QUAL> { \
\
static constexpr bool value = true; \
using has_varargs = std::false_type; \
@@ -45,14 +43,10 @@ public:
using class_type = T; \
using invoke_type = T QUAL; \
\
private: \
\
using qualifiers = qualifier_traits<dummy QUAL>; \
template<flags Flags> \
using set_qualifiers = set_function_qualifiers<Flags, Return, Args...> T::*; \
\
public: \
\
using remove_reference = set_qualifiers<qualifiers::cv_flags>; \
using add_lvalue_reference = set_qualifiers<qualifiers::q_flags | lref_>; \
using add_rvalue_reference = set_qualifiers<qualifiers::q_flags | rref_>; \
@@ -76,9 +70,7 @@ public:
\
template<typename Return, typename T, typename... Args> \
struct pmf<Return(CALLABLE_TRAITS_VARARGS_CC T::*)(Args..., ...) QUAL> \
: public qualifier_traits<dummy QUAL> { \
\
public: \
: qualifier_traits<dummy QUAL> { \
\
static constexpr bool value = true; \
using has_varargs = std::true_type; \
@@ -102,16 +94,12 @@ public:
using class_type = T; \
using invoke_type = T QUAL; \
\
private: \
\
using qualifiers = qualifier_traits<dummy QUAL>; \
\
template<flags Flags> \
using set_qualifiers = \
set_varargs_member_function_qualifiers<Flags, T, Return, Args...>; \
\
public: \
\
using remove_reference = set_qualifiers<qualifiers::cv_flags>; \
using add_lvalue_reference = set_qualifiers<qualifiers::q_flags | lref_>; \
using add_rvalue_reference = set_qualifiers<qualifiers::q_flags | rref_>; \