如何从decltype引用获取值类型?

时间:2014-02-27 21:37:45

标签: c++ c++11

我有一个模板功能如下:

template<typename T>
void do_something(T &c) {
  decltype(c[0]) tmp;
  //...
}

T可以是数组或容器。这声明tmp作为引用,但我想要一个值类型并且不初始化它(所以我不想做auto tmp = c[0])。我怎么能这样做?

1 个答案:

答案 0 :(得分:5)

如果只是参考问题,您可以在std::remove_reference中使用<type_traits>

typename std::remove_reference<decltype(c[0])>::type tmp;