|
1
6
这取决于。例如,如果编译器决定内联函数,显然不会有副本,因为没有函数调用。 如果要确定,请传递常量引用:
这不会复制。注意,非常量版本需要左值,因为引用是可变的。
顺便说一下,标识符中的双下划线是为编译器保留的。 |
|
2
0
因为分配通常需要
但这并不能回答你关于优化的问题。一般来说,我不确定编译器是否能够/将进行这种优化。 |
|
|
3
0
我认为这样说是公平的
如前所述,不要在标识符的开头使用下划线。 |
|
|
4
0
我认为编译器可以在临时对象的情况下进行优化。这种技术被称为拷贝省略。 请参考我发布的问题的答案 what-is-copy-elision-and-how-it-optimizes-copy-and-swap-idiom . 这个答案真的很有用 What is copy elision and how does it optimize the copy-and-swap idiom? 虽然我不是这方面的专家,但据我所知,编译器可以在某些情况下优化临时对象的复制。 例如,如果您的代码是这样调用的
哪里
此调用将导致创建类型为
但是,如果编译器支持复制省略,则不会执行此复制,并且临时的将作为参数传递给
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |