c++ - && 声明的变量

标签 c++ c++11 rvalue-reference

考虑到 (x|r|l|pr|gl) 值,我想到了以下问题:

考虑以下两个变量声明:

X x = ...;

X&& x = ...;

并假设 ... 传递一个 xvalue。

有人能想到 使用 decltype 的代码会有所不同吗?在这两种情况下,(x) 都是 X 类型的左值,不是吗?

最佳答案

也许是人为的例子,但是有

struct X
{
    X() = default;
    X(const X&) = delete;
    X operator =(const X&) = delete;
    X(X&&) = delete;
    X operator =(X&&) = delete;
};

X makeX() {return {};}

后续编译

X&& x = makeX();

而下面没有

X x = makeX();

关于c++ - && 声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34479512/

相关文章:

c++ - 如何将浮点算法转换为定点算法?

c++ - glm::ivec2 作为无序映射中的键

c++ - 我可以重用右值引用参数来返回右值引用吗?

c++ - 通过 r 值引用接收后通过引用传递

c++ - 在 C++ 中链接对临时对象的调用

c++ - 如何等待被调用进程的克隆子进程退出?

c++ - 如何初始化和更改数组作为结构的成员变量?

c++ - boost::shared_ptr<const T> 到 boost::shared_ptr<T>

c++ - Map 与 Unordered_map——多线程

c++ - std::string() 是否与 std::string (""相同)