是否可以为template-template参数编写概念?
在
template<template<typename> typename T> struct A {};
我想检查T
的特定实例是否满足一个概念。
示例:
template<typename F>
concept bool HasF = requires(F) {
F::f();
};
template<typename T>
struct Test1 {
static void f() {}
};
template<typename T>
struct Test2 {
};
template<template<typename> typename T>
//requires HasF<T<B>> // not possible
struct A {
struct B {
};
};
using x1 = A<Test1>;
using x2 = A<Test2>; // should fail
在上面的示例中,我无法使用B
,因为在使用时未声明它。
答案 0 :(得分:0)
template<template<typename> typename T> requires a_concept<T<specific_type>>
struct A {}