lvalue

    5热度

    1回答

    的Rust Reference说: 转让或化合物的赋值表达式的左操作数是一个左值背景下,作为是一个一元借的单个操作数。 [...] 当右值是在左值上下文中使用,暂时未命名的左值创建并代替。 这个右值的提干显然与借款作品: let ref_to_i32 = &27; // a temporary i32 variable with value 27 is created 但它似乎并没有在分配工作

    3热度

    2回答

    由于某种原因,我没有设法找到这个确切的问题。为什么允许将rvalue绑定到const lvalue reference,但是如果没有const则不可能相同? 我明白,右值的生命周期以某种方式获得扩展(在第一种情况下),但如果是这样,为什么编译器不允许更改'rvalue',这实际上不再是临时对象。 例如,请考虑下面的代码: int main(){ int &i=3; //produces

    2热度

    2回答

    在另一种语言从一个长的限制编码返回到Ruby后,我经常认为foo.sort,foo.map {...},foo.sub /bar/, 'zip'将变化 FOO。当然我的意思是foo.sort!等等。但是在我注意到之前,通常需要3或4次调试。同时,排序是计算出来的,但是没有分配任何东西。我可以让红宝石​​警告关于缺少左值,就像C编译器警告函数的忽略返回值?

    0热度

    1回答

    我不明白什么是错我的代码,SRY如果它是一个愚蠢的问题,我是一个初学者 #include <Windows.h> #include <iostream> #include <Winuser.h> #include <stdint.h> bool isProcessRunning(HANDLE process) { return WaitForSingleObject(pro

    3热度

    1回答

    我新的C++和试图写一个界面,如下方法调用(左值)结合功能(右值): template <class T> class Comparable { protected: Comparable(){}; public: virtual int compare(const T&&)=0; int compare(const T& o)

    0热度

    1回答

    在这种情况下会发生什么? // assume WeakPtr is valid and has not expired const auto& something = WeakPtr.lock(); something->doStuff(); 这是undefined? 它在这种情况下会改变吗? std::shared_ptr<Something> getSomething() { retu

    -2热度

    1回答

    我无法理解以下内容: 假设我正在创建一个重载的赋值运算符。函数会是这样的: MyObject& MyObject::operator=(const &rhs) { // code to make this work return *this; } 如果'this'已经是一个引用,为什么我需要取消引用它?为什么我需要返回对象而不是对象的引用,如返回类型所示?换句话说,为

    2热度

    4回答

    说我有一些代码,我有一个变量,我分配一个指针指向a: int a = 5; int* ptr = &a; 然而,在此之后,我想给这个变量a占据名称b的存储位置。 int b = a; // doesn't work, because it only copies the value &b = ptr; // doesn't work, not an assignable value p

    0热度

    1回答

    我在C++中使用了复合模式和继承。 它不应该是特别的东西,所以我编码组件有父母作为复合材料,复合材料应该从组件诠释和使用它的基类(组件)的构造函数。但后来我得到了以下错误: "Cannot convert lvalue of type 'Composite*' to parameter type 'Composite*'" 研究之了一下,发现了什么左值/右值等都是,但没有找到有关“参数”式的东西。

    -2热度

    1回答

    为什么我收到error: lvalue required as left operand of assignment 这里是C代码: #include <stdio.h> int main(){ int b, i = 10, d; i>10?b=15:d=1; return 0; } 这样 i>10?b=15:d=1; ^ 我使用gcc version 5.