腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
RVO和move构造
函数
、
return second; // move happens here{} 为什么它打印移动而不是复制,因为我正在复制左
值
?我已经翻转了椭圆构造
函数
的旗帜,它仍然打印移动。是因为RVO/ NRVO吗?如果是,谁能解释一下在哪种情况下会发生RVO/NRVO?
浏览 0
提问于2020-12-21
得票数 0
2
回答
右
值
参数
无法
在
函数
重载
中
解析
、
、
、
、
如何编译main()
中
的最后一行?
浏览 24
提问于2017-12-16
得票数 2
3
回答
是否保证对象
在
返回时会被移动?
、
、
、
我知道,当通过
值
将对象传递给
函数
时,假设没有复制省略,则总是调用move构造
函数
。如果按
值
返回对象呢? Foo f; } 如果我们假设没有RVO,能保证调用move构造
函数
吗?我只想知道,
在
最坏的情况下,我可以让对象移动,而不是复制。
浏览 5
提问于2012-06-19
得票数 14
回答已采纳
1
回答
合法地
重载
字符串和常量char*是可能的吗?
、
、
、
在
C++11
中
可以
重载
const char*和字符串文字(const char[])吗?这样做的目的是避免
在
字符串长度已知的情况下调用strlen来查找字符串长度。此代码片段
在
G++ 4.8和Clang++ 3.2上中断:#include <stdlib.h> template<typename当移除数组专门化时,字符串文字
在
T&&上显示为
重
浏览 4
提问于2013-05-23
得票数 15
回答已采纳
1
回答
没有
重载
的c++接收常量左
值
和
右
值
引用
参数
、
..void f(std::vector<int>&& v) //#2 std::vector<int> a(std::move(v));} 有没有办法
在
一个
函数
中
编写#1和#2而不
重载
,但达到相同的效果?我的意思是,如果
参数
是左
值
,那么使用复制构造
函数
,如果
参数
是
右
值
,那么使用移动构造
函数
。
浏览 2
提问于2017-10-02
得票数 2
3
回答
当抛出一个对象时,它是被复制还是被移动?
、
、
、
、
因此,当我抛出一个对象时,应该调用复制构造
函数
。我也知道编译器可以优化和省略复制。我在这里有一个简单的程序,我抛出了一个叫做X的类。如果我把这个类设为不可复制的,那么这个对象就不能被抛出。如果我删除了复制构造
函数
,编译器就会报错。如果我注释了复制构造
函数
的删除并删除了移动构造
函数
,编译器会抱怨删除了移动构造
函数
。= delete;}; { throw x; i
浏览 3
提问于2020-03-11
得票数 2
2
回答
三元运算符的结果不是
右
值
、
、
、
如果使用C++11编译器编译此程序,则向量不会移出
函数
。我
在
gcc 4.7.0和MSVC10上试用过。两者的行为方式是相同的。三元运算符类型是一个左
值
,因为它是
在
执行return语句之前计算的。在这一点上,a和b还不是x
值
(即将过期)。这是标准
中
的缺陷吗? 这显然不是故意的行为,在我看来这是一个非常常见的情况。
浏览 0
提问于2012-08-27
得票数 11
回答已采纳
4
回答
C++03
中
的
右
值
、
、
、
、
在
C++03
中
,如何判断给定
参数
是否是
右
值
?我正在写一些非常通用的代码,如果可能的话,我需要一个引用,否则就需要构造一个新的对象。我是否可以
重载
以获取按
值
和按引用,并让
右
值
返回调用按
值
函数
?或者我有一种非常恶心的感觉,这就是为什么
右
值
引用在C++0x
中
?is_rvalue = !(is_reference || is_pointer)?
浏览 1
提问于2010-06-12
得票数 4
回答已采纳
2
回答
通用引用与非模板` `const&`
、
、
为什么第二个
重载
被认为是更好的匹配? 第一个
函数
归结为foo(const int&, const double&),它是一个常规
函数
,所以应该优先使用它,不是吗?
浏览 2
提问于2020-08-13
得票数 3
1
回答
为什么在给定T&&和常量T&
重载
的情况下,常量左
值
绑定不同于常量
右
值
?
、
、
、
调用const T&
重载
,而第二次调用(使用
右
值
)调用T&&
重载
。至少
在
gcc 4.8.1和最新的VC++ (VC12)
中
是这样的。我想我理解第二个调用
解析
的原因:因为第一个模板实例化为接受一个const int&
参数
,而第二个模板实例化为接受一个const int&&
参数
,并且因为
在
调用点传递的
参数
是一个
右
值
,所以
浏览 5
提问于2013-07-20
得票数 1
回答已采纳
2
回答
非类
右
值
始终具有cv非限定类型
、
、
、
§3.10第9节说“非类的
右
值
总是有cv-非限定类型”。这让我怀疑..。编辑:显然,this也是一个常量rvalue :) 编辑:这个问题似乎
在
g++ 4.5.0
中
得到了解决,现在两行都打印"rvalue“。
浏览 1
提问于2010-01-31
得票数 33
回答已采纳
2
回答
使
参数
明确?
、
、
可以用在例如.一个构造
函数
或转换
函数
,以避免隐式调用该构造
函数
/转换-简而言之。 我感兴趣的是,是否有可能以某种方式使单个
参数
(短于创建一个新类型)?也许使用编译器扩展?有时,能够
在
函数
级别强制使用explicit工具/接口说明符是很好。
浏览 8
提问于2020-03-05
得票数 4
2
回答
如果没有std::move,如何按
值
返回unique_ptr?
、
、
、
std::cout << *a; // Prints 3.在上面的代码
中
,
函数
ptr()返回p的一个副本。当p超出作用域时,应该删除数据“%3”。
浏览 0
提问于2014-09-17
得票数 10
回答已采纳
1
回答
如何将类型约束和隐式转换与C++11通用引用结合起来?
、
、
、
在
函数
中
,我需要区分左
值
和
右
值
引用,所以最明显的方法是
重载
:void myfunc(const A& a); T>::type> 这看起来几乎可以完成这项工作,但是(我猜已经通过模板化)我们已经失去了
浏览 1
提问于2016-02-15
得票数 4
2
回答
为什么第二条语句打印十六进制
值
使用流运算符的c++代码失败。我不能弄清楚为什么第二个打印"DEF“不能工作::#include <sstream> logger& oss = dy
浏览 1
提问于2014-02-20
得票数 2
2
回答
为什么派生类move是可构造的,而基类不是?
、
、
、
、
}这是
在
标准
中
还是在编译器错误
中
?有可能“完美地传播”将结构从基类移动到派生类吗?
浏览 28
提问于2016-08-25
得票数 57
回答已采纳
1
回答
即使使用了auto &&,仍然需要使用std move
、
、
、
众所周知,STL通常提供两种
函数
来插入元素: insert/push和emplace。 假设我想将一个容器
中
的所有元素放到另一个容器
中
。
浏览 27
提问于2021-08-14
得票数 0
回答已采纳
2
回答
具有选择了非常数引用的复制构造
函数
的
参数
类型的
函数
?
、
、
、
重载
解析
不会调用通过非常数引用接受
参数
的
函数
,对吗?为什么它不在下面的代码
中
拒绝,因为构造
函数
需要一个Test&?我以为它会用到f(int)!
浏览 5
提问于2011-01-16
得票数 2
回答已采纳
2
回答
用于
右
值
或左
值
类型的手动选择
重载
函数
、
、
、
我有
重载
的方法: void AnyFunc(AnyType &t); AnyFunc(*ptr); 最后一行遇到编译错误: AnyFunc的二义性
重载
浏览 0
提问于2012-12-01
得票数 1
回答已采纳
1
回答
以const和const&结尾的getter之间的区别
、
我看过Nicolai Josuttis ( C++标准委员会成员)的 (确切的时间戳,他没有解释),他说getter应该写成这样:{} const std::string& getName() const return memberStringVar;
浏览 52
提问于2019-02-22
得票数 11
回答已采纳
点击加载更多
相关
资讯
Python中定义函数时参数有默认值的小陷阱
第51p,万能参数与返回值,Python中函数的返回值
python yield在函数中起返回值中的使用
C+11完美转发及实现方法详解
手把手以实例教你在Python中调用DLL函数:传递结构体参数
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券