C ++通过引用传递const bool

时间:2017-12-12 14:05:45

标签: c++ function boolean pass-by-reference

通过引用传递bool是否值得?

void foo(const bool& iflag);

VS

void foo(const bool iflag);

我听说bool引用比bool声明花了很多时间,但是我无法检查它。

1 个答案:

答案 0 :(得分:1)

我总是按值传递它,除非我想在调用网站上击败隐式转换,在这种情况下const引用可能是明智的选择。

至于性能的原因,如果您有任何疑问,请检查生成的程序集。 Instinct向我建议在引用的情况下可能有开销,尽管编译器可能会优化混乱。

有趣的是,虽然C ++标准没有规定bool的大小;它可能在故意恶意的编译器中绝对是巨大的。此外,该标准没有提供检查参考大小的机制:sizeof(T&)始终为sizeof(T)