void Trace(int i) { #ifdef _DEBUG std::cout << i << std::endl; #endif }
现在我用另一个需要很长时间的函数生成的参数来调用这个函数:
Trace(SlowFunc());
合理的编译器会在发布模式下优化对SlowFunc()的调用吗? MSVC会特意做到吗?
但我不会依赖它.而是使用日志解决方案,该解决方案仅在启用DEBUG时计算参数.有几个选项,如果你想要一些指示,请告诉我.