[英]Check if template type is any instantiation of std::array [duplicate]
我需要一些编译时检查传递给模板化 function 的模板类型是否是std::array
的任何实例化
喜欢
IsStdArray<std::array<float, 12>>::value; // should evaluate to true
IsStdArray<std::array<int, 1000>>::value; // should evaluate to true
IsStdArray<std::vector<float>>::value; // should evaluate to false
IsStdArray<std::string>::value // should evaluate to false
我特别努力想出任何与数组大小无关的东西。 请注意,返回constexpr bool
的 function 也可以作为解决方案!
您可以部分特化特征 class。
template<typename T>
struct IsStdArray : std::false_type {};
template<typename T, std::size_t N>
struct IsStdArray<std::array<T, N>> : std::true_type {};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.