【发布时间】:2013-12-20 04:03:43
【问题描述】:
RVO 是一种编译器优化,但可以提供非常有用的性能提升。但是,它不能保证,也不能依赖。
语言标准本身有什么可以优化返回值的吗?移动语义仍然复制成员值,对吗?
【问题讨论】:
-
移动语义意味着尽可能少地复制。它通常只是指针交换。
-
我想说 RVO 在很多情况下都可以依赖,除非您使用的是古老的编译器。任何足以支持移动语义的现代编译器都应该很好地掌握 RVO。并移动语义moves 事物。如果无法利用从不再使用的移动对象,这可能与副本相同,但它通常要快得多。