通过价值保证高效的bool传递?

fre*_*ish 3 c++ boolean

如果sizeof(bool) == 1那么传递值是有效的,因为bool适合寄存器(假设一些标准调用约定).但是sizeof(bool)是实现定义的.因此,bool当通过值而不是通过引用传递时,始终保证更高效?上限是否有任何保证sizeof(bool)

Bau*_*gen 6

C++和C标准并非旨在保护您免受恶意恶意实施的侵害.

就那么简单.你必须相信你的实现不会试图变坏.如果是这样,请不要使用它.

对于这种特定情况:任何使复制内置整数类型都很昂贵的实现,即使在技术上符合要求,也会破坏大量现实世界代码的性能,因此可能被认为是恶意的.

所以要明确答案:不,标准不能保证,因为这超出了他们的范围.然而,它受到现实世界限制的保证.