Cha*_*rly 2 c++ gcc explicit-constructor
我正在寻找这样的语法:
class Hugo
{
Hugo();
explicit Hugo( const Hugo& hugo );
Hugo GetRandomHugo()
{
Hugo hugo;
hugo.value = rand();
// this would fail:
// return hugo;
return Hugo(hugo); // explicit copy!!
}
};Run Code Online (Sandbox Code Playgroud)
换句话说:我正在寻找一种显式的复制语法,以允许方法返回一个副本,即使我的复制构造函数是显式的.
我正在使用GCC 4.4.5.
非常感谢,
查理
您不能:按值返回是隐式复制构造.这里,返回尝试隐式复制显式复制构造的临时.
从8.5/12:
在参数传递,函数返回,抛出异常(15.1),处理异常(15.3)和大括号括起的初始化列表(8.5.1)中发生的初始化称为复制初始化,并且等效于以下形式:
T x = a;
| 归档时间: |
|
| 查看次数: |
533 次 |
| 最近记录: |