@@ -122,19 +122,18 @@ NBL_CONSTEXPR bool NBL_CONCEPT_NAME = BOOST_PP_SEQ_FOR_EACH_I(NBL_IMPL_CONCEPT_E
122
122
#include <boost/preprocessor/comparison/not_equal .hpp>
123
123
#include <boost/preprocessor/punctuation/comma_if.hpp>
124
124
125
- #define NBL_IMPL_EXPR_DECLVAL (r,data,i,_T) BOOST_PP_COMMA_IF (BOOST_PP_NOT_EQUAL (i,0 )) experimental::declval<_T>()
126
125
#define NBL_IMPL_EXPR_DECL_TEMP_ARG (r,data,i,_T) BOOST_PP_COMMA_IF (BOOST_PP_NOT_EQUAL (i,0 )) typename _T
127
126
#define NBL_IMPL_EXPR_ITER_TEMP_ARG (r,data,i,_T) BOOST_PP_COMMA_IF (BOOST_PP_NOT_EQUAL (i,0 )) _T
128
- #define NBL_VALID_EXPRESSION (CONCEPT_NAME, FUNCTION_NAME, ARG_TYPE_LIST, ARG_TYPE_SET )\
127
+ #define NBL_VALID_EXPRESSION (CONCEPT_NAME, ARG_TYPE_LIST, ... )\
129
128
namespace impl\
130
129
{\
131
130
template<BOOST_PP_SEQ_FOR_EACH_I (NBL_IMPL_EXPR_DECL_TEMP_ARG, _, ARG_TYPE_LIST), typename enable=void >\
132
131
struct CONCEPT_NAME : false_type {};\
133
132
template<BOOST_PP_SEQ_FOR_EACH_I (NBL_IMPL_EXPR_DECL_TEMP_ARG, _, ARG_TYPE_LIST)>\
134
- struct CONCEPT_NAME<BOOST_PP_SEQ_FOR_EACH_I (NBL_IMPL_EXPR_ITER_TEMP_ARG, _, ARG_TYPE_LIST), make_void_t<decltype (FUNCTION_NAME< BOOST_PP_SEQ_FOR_EACH_I (NBL_IMPL_EXPR_ITER_TEMP_ARG, _, ARG_TYPE_LIST)>( BOOST_PP_SEQ_FOR_EACH_I (NBL_IMPL_EXPR_DECLVAL, _, ARG_TYPE_SET)) )> > : true_type {};\
133
+ struct CONCEPT_NAME<BOOST_PP_SEQ_FOR_EACH_I (NBL_IMPL_EXPR_ITER_TEMP_ARG, _, ARG_TYPE_LIST), make_void_t<decltype ( __VA_ARGS__ )> > : true_type {};\
135
134
}\
136
135
template<BOOST_PP_SEQ_FOR_EACH_I (NBL_IMPL_EXPR_DECL_TEMP_ARG, _, ARG_TYPE_LIST)>\
137
- NBL_BOOL_CONCEPT CONCEPT_NAME = impl::CONCEPT_NAME<BOOST_PP_SEQ_FOR_EACH_I (NBL_IMPL_EXPR_ITER_TEMP_ARG, _, ARG_TYPE_LIST)>::value; \
136
+ NBL_BOOL_CONCEPT CONCEPT_NAME = impl::CONCEPT_NAME<BOOST_PP_SEQ_FOR_EACH_I (NBL_IMPL_EXPR_ITER_TEMP_ARG, _, ARG_TYPE_LIST)>::value\
138
137
139
138
}
140
139
}
0 commit comments