我可以知道输入增量是参考(&)还是右值参考(&&)?

时间:2017-05-14 01:00:16

标签: c++

我正在学习c ++。  有时,我想知道"元素"作为以下函数的输入,在调试期间是参考(=&)或右值参考(=&&)。

// This is an example code to explain my question simply.
template <typename Element>
void add_container_side(Element&& element) {
    static std::vector vec;
    vec.push_back(std::forward<Element>(element));
}

我是否有办法知道&#34;元素&#34;仅通过使用调试器跟踪此函数来引用(=&amp;)或右值引用(=&amp;&amp;)?换句话说,在此函数之前,如果不读取调试器堆栈,我可以知道它吗?我真正的代码有很深的堆栈。我正在使用日食的CDT。

非常感谢。

1 个答案:

答案 0 :(得分:1)

调试器应该显示模板参数Element被推导出来的内容:

  • T &表示参数是左值。
  • T表示参数是prvalue。
  • T &&表示参数是xvalue。