mirror of
https://github.com/boostorg/callable_traits.git
synced 2026-02-20 14:42:14 +00:00
cleaning up struct layouts
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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_>; \
|
||||
|
||||
@@ -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_>; \
|
||||
|
||||
Reference in New Issue
Block a user