I am guessing this is not possible, but I am really hoping it is. An example:
template<class T> concept bool Dereferencable() { return requires(T t){ *t }; } template<class T> concept bool Incrementable() { return requires(T t){ ++t }; } template<class T, ??? X, ??? Y> concept bool And() { return X<T>() && Y<T>(); } static_assert( And<int*, Dereferencable, Incrementable>() ); Is there a way to do something like this?
If not, is there a hack to achieve the same functionality?
Ultimately I'd like to use compound concepts as placeholder constraints.