@@ -33,6 +33,7 @@ namespace concepts
33
33
#define NBL_CONCEPT_REQ_EXPR 1
34
34
//
35
35
#define NBL_CONCEPT_REQ_EXPR_RET_TYPE 2
36
+ #define NBL_CONCEPT_REQ_TYPE_ALIAS_CONCEPT 3
36
37
37
38
38
39
//! Now diverge
@@ -64,8 +65,9 @@ concept NBL_CONCEPT_NAME = requires BOOST_PP_EXPR_IF(LOCAL_PARAM_COUNT,(BOOST_PP
64
65
#define NBL_IMPL_CONCEPT_REQ_TYPE (...) typename __VA_ARGS__;
65
66
#define NBL_IMPL_CONCEPT_REQ_EXPR (...) __VA_ARGS__;
66
67
#define NBL_IMPL_CONCEPT_REQ_EXPR_RET_TYPE (E,C,...) {E}; C<decltype E __VA_OPT__ (,) __VA_ARGS__ >;
68
+ #define NBL_IMPL_CONCEPT_REQ_TYPE_ALIAS_CONCEPT (C,...) C< __VA_ARGS__ >;
67
69
//
68
- #define NBL_IMPL_CONCEPT (NBL_IMPL_CONCEPT_REQ_TYPE,NBL_IMPL_CONCEPT_REQ_EXPR,NBL_IMPL_CONCEPT_REQ_EXPR_RET_TYPE)
70
+ #define NBL_IMPL_CONCEPT (NBL_IMPL_CONCEPT_REQ_TYPE,NBL_IMPL_CONCEPT_REQ_EXPR,NBL_IMPL_CONCEPT_REQ_EXPR_RET_TYPE,NBL_IMPL_CONCEPT_REQ_TYPE_ALIAS_CONCEPT )
69
71
//
70
72
#define NBL_IMPL_CONCEPT_END_DEF (r,unused,i,e) NBL_EVAL (BOOST_PP_TUPLE_ELEM (BOOST_PP_SEQ_HEAD (e),NBL_IMPL_CONCEPT) BOOST_PP_SEQ_TAIL (e))
71
73
//
@@ -95,8 +97,9 @@ concept NBL_CONCEPT_NAME = requires BOOST_PP_EXPR_IF(LOCAL_PARAM_COUNT,(BOOST_PP
95
97
#define NBL_IMPL_CONCEPT_REQ_TYPE (...) ::nbl::hlsl::make_void_t<typename __VA_ARGS__ >
96
98
#define NBL_IMPL_CONCEPT_REQ_EXPR (...) ::nbl::hlsl::make_void_t<decltype (__VA_ARGS__)>
97
99
#define NBL_IMPL_CONCEPT_REQ_EXPR_RET_TYPE (E,C,...) ::nbl::hlsl::enable_if_t<C<decltype E __VA_OPT__ (,) __VA_ARGS__ > >
100
+ #define NBL_IMPL_CONCEPT_REQ_TYPE_ALIAS_CONCEPT (C,...) ::nbl::hlsl::enable_if_t<C< __VA_ARGS__ > >
98
101
//
99
- #define NBL_IMPL_CONCEPT_SFINAE (NBL_IMPL_CONCEPT_REQ_TYPE,NBL_IMPL_CONCEPT_REQ_EXPR,NBL_IMPL_CONCEPT_REQ_EXPR_RET_TYPE)
102
+ #define NBL_IMPL_CONCEPT_SFINAE (NBL_IMPL_CONCEPT_REQ_TYPE,NBL_IMPL_CONCEPT_REQ_EXPR,NBL_IMPL_CONCEPT_REQ_EXPR_RET_TYPE,NBL_IMPL_CONCEPT_REQ_TYPE_ALIAS_CONCEPT )
100
103
//
101
104
#define NBL_IMPL_CONCEPT_END_DEF (r,unused,i,e) template<NBL_CONCEPT_FULL_TPLT (), typename=void > \
102
105
struct BOOST_PP_CAT (__requirement,i) : ::nbl::hlsl::false_type {}; \
0 commit comments