通过引用传递bool是否值得?
void foo(const bool& iflag);
VS
void foo(const bool iflag);
我听说bool引用比bool声明花了很多时间,但是我无法检查它。
答案 0 :(得分:1)
我总是按值传递它,除非我想在调用网站上击败隐式转换,在这种情况下const
引用可能是明智的选择。
至于性能的原因,如果您有任何疑问,请检查生成的程序集。 Instinct向我建议在引用的情况下可能有开销,尽管编译器可能会优化混乱。
有趣的是,虽然C ++标准没有规定bool
的大小;它可能在故意恶意的编译器中绝对是巨大的。此外,该标准没有提供检查参考大小的机制:sizeof(T&)
始终为sizeof(T)
。