我想要求编译器检查一个元组是否只包含“元类型”。
顺便说一句,我对 C++ 概念完全陌生。
template < typename T >
struct Type {
using type = T;
};
//! A type can be easily check with a small concept
template < typename T >
concept bool C_Type = requires {
typename T::type;
};
//! But how to apply it on a whole tuple?
template < typename T >
void foo(T tuple) {}
int main() {
constexpr auto test = std::make_tuple(Type<int>{}, Type<double>{});
foo(test);
}
所以我想确保序列中的每个类型(我们只说这个例子的 Iterable )都是“元类型”。
如果它可以简化代码,我正在使用 Boost Hana。
目前我什至不确定这是否可能。我希望是的,我想我只需要学习更多元编程的东西。所以我会继续搜索和尝试,但如果有人已经有了答案,谢谢!