![]() |
1
2
最有效的方法是将任何可转换为
不过,有一点点。第二个最好的选择是根本不提供构造函数,将数据成员公开并初始化
完整故事: CppCon 2017: Nicolai Josuttis âThe Nightmare of Move Semantics for Trivial Classesâ . |
![]() |
2
1
这是一个 实用经验法则 更一般的范围是:
这通常是可用性(在接口的任一侧)和计算开销之间的一个很好的折衷。通常,额外的工作(与完美的转发相比)最多是一个额外的移动结构,最多是一个额外的解构。除非您已经确定了应用程序的性能瓶颈,否则您很可能不想花费更多的编程工作。 This blog post on how to pass sink arguments 包括对备选方案的较长讨论,其结论还以“坚持按值传递”作为默认值开始。
应用于您的
除了上述一般性能方面外,请注意签名
|
![]() |
3
0
正如Clonk所说,您需要具体说明您想要什么。你在找表演还是别的什么? 此外,您还可以使用编译器资源管理器自己对其进行比较。 在编译器资源管理器中编写代码,它将自动生成汇编代码。当然,您可以选择编译器。 |
![]() |
4
0
完整答案: Analysing the Cases |
![]() |
111111 · 确定作为模板参数传递的函数的参数类型 6 月前 |
![]() |
msg · std::variant的奇怪结果 6 月前 |
![]() |
Mikhail T. · 如何将对象的方法传递给lambda函数? 10 月前 |
![]() |
zack · 不接受变分模板函数参数 10 月前 |
|
IRP_HANDLER · 另一个命名空间内的C++STD模板专门化[重复] 10 月前 |
|
Youssef Gamil · RegEx替换C中的空行++ 10 月前 |
![]() |
GPrathap · 如何在C中返回智能指针和协方差++ 11 月前 |