C++11 聚合和构造函数速度比较

C++11 Aggregates & constructors speed comparison

默认构造函数复制构造函数移动构造函数[=22=的速度如何? ] 相互比较 聚合 类型,例如存储内置类型元素的 std::array ?

直觉上,我会说 move > default > copy(越大越快)。

对吗?

std::arraydefault 构造函数持有一个内置函数(例如 floatint 等)将是最快的,其次是 movecopy(速度相当)。

std::array 是一个集合,因此 default 构造函数不执行任何操作。如 cppreference

所述

note that default initialization may result in indeterminate values for non-class T

请注意,由于这些是内置函数,因此移动和复制在性能方面完全相同,因为移动内置函数的速度不能比复制它快。

所以对于 std::array,顺序是 default > move == copy.

这不一定适用于包含非内置函数的聚合,但适用于仅包含内置函数的聚合或其他仅包含内置函数的聚合。