有没有办法检查类型 T
是否是任意类型和大小的 std::array
?
我可以检查特定的数组,例如:
is_same<T, std::array<int,5>>::value
但我想要确认一下,
T
是 std::array
的任何实例化。类似下面这样的(当然,这段代码无法编译):is_same<T, std::array>::value
有没有办法实现这个(也许不使用
is_same
)?有没有办法检查类型 T
是否是任意类型和大小的 std::array
?
我可以检查特定的数组,例如:
is_same<T, std::array<int,5>>::value
T
是 std::array
的任何实例化。类似下面这样的(当然,这段代码无法编译):is_same<T, std::array>::value
is_same
)?template<typename>
struct is_std_array : std::false_type {};
template<typename T, std::size_t N>
struct is_std_array<std::array<T,N>> : std::true_type {};
is_same_template
并使用is_same_template <T::template array, std::array>
。但是编译器必须支持 C++11 中注入类名规则。 - Johannes Schaub - litb