相关疑难解决方法(0)

C++ std :: ref(T)和T&?之间的区别?

我对这个程序有一些疑问:

#include <iostream>
#include <type_traits>
#include <functional>
using namespace std;
template <typename T> void foo ( T x )
{
    auto r=ref(x);
    cout<<boolalpha;
    cout<<is_same<T&,decltype(r)>::value;
}
int main()
{
    int x=5;
    foo (x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

false
Run Code Online (Sandbox Code Playgroud)

我想知道,如果std::ref没有返回对象的引用,那么它会做什么?基本上,有什么区别:

T x;
auto r = ref(x);
Run Code Online (Sandbox Code Playgroud)

T x;
T &y = x;
Run Code Online (Sandbox Code Playgroud)

另外,我想知道为什么存在这种差异?为什么我们需要std::refstd::reference_wrapper什么时候有参考(即T&)?

c++ reference ref

76
推荐指数
3
解决办法
2万
查看次数

什么是"你好,世界!" "std :: ref"的例子?

有人可以举一个简单的例子来证明其功能std::ref吗?我的意思是一个例子,其中只有在std::ref没有它们的情况下无法解释时才使用其他一些结构(如元组或数据类型模板).

我在std::ref 这里这里找到了两个问题.但是在第一个中,它涉及编译器中的错误,而在第二个中,使用std::ref不包含的示例,std::ref它们涉及元组和数据类型模板,这使得对这些示例的理解变得复杂.

c++ std ref c++11

66
推荐指数
3
解决办法
8970
查看次数

标签 统计

c++ ×2

ref ×2

c++11 ×1

reference ×1

std ×1