减少<< std :: cout中的运算符链

时间:2017-10-24 18:47:40

标签: c++ performance

有没有办法从下面的语句中减少<<运算符链?

std::cout << var1 << "!=" << var2;

printf()可能是一个选项,但还有其他什么?

因为运营商<<的数量也增加了运行时间。

是否有可能有效地减少<<链?

1 个答案:

答案 0 :(得分:0)

不,这是不可能的。

根本原因是operator<<(const char*)operator<<(int)都很简单。事实上,它们非常简单,很可能会被内联。

另一方面,

printf(const char* format, ...)是一个非常复杂的函数,因为它需要处理许多可能的格式说明符,并且它还有一个需要解析的变量参数列表。

任何其他单一功能都会有如此复杂的缺点,无法内联。