如何找出STL容器所持有的模板参数类型

时间:2013-11-13 02:16:08

标签: c++ c++11 stl

例如vector<int> coll,保留int个类型对象。如果我不知道coll成立int(但我知道它是向量),我将如何查找类型信息呢?

1 个答案:

答案 0 :(得分:3)

您可以从对象的value_type

中获取信息
using value_type = decltype(coll)::value_type;

static_assert(std::is_same<value_type, int>::value, "Type is not an int");

使用using别名和static_assert在C ++ 11 +中可用

虽然这总是可以通过使用模板来确定(更常见):

template <class T>
void f(std::vector<T>& v); // use T as the type