繁体   English   中英

我可以为非const参考参数赋值吗?

[英]Can I assign a value to a non-const reference parameter?

在以下(遗留)代码块中,popped_value的赋值是有效还是应该有memcpy?

bool peek(value_type& popped_value)
    {
    bool retval=false;
    RWLock::ScopedReadLock lock(queueLock);
    if ( ! m_queue.empty())
        {
        popped_value=m_queue.front(); //question...
        retval=true;
        }
    return retval;
    }

我不想将参数更改为指针。

创建引用变量时,唯一可以设置引用变量引用的对象的位置:

  • 在全局变量或局部变量的情况下, Type & ref = value; 定义变量的语句,
  • 对于某个类的非静态数据成员,该类的构造函数中的初始化列表,或
  • 如果某个函数的参数是一个引用,则在调用该函数的语句中。

在任何其他时间,当您为该引用赋值时,您不会更改引用变量引用的内容,例如reference_variable = value; 而是改变引用变量引用的事物的值。

这几乎肯定是引用的代码块中所需的行为。

那没关系,这就是我期望写的方式。

如果value_type是自定义类,则将调用一些value_type operator=(...) 据推测,这种方法的实施是理智的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM