関数パラメータの評価を防ぐことは可能ですか? ある状況で関数パラメーターを評価したくないので。
たとえば、デバッグ メッセージをログに記録するには、
void log(int severity, ...);
メッセージを記録したい
log(DEBUG, "%s", getErrorMsg().c_str());
重大度が DEBUG の場合、ログ機能はリリース バイナリで返されるだけです。したがって、getErrorMsg(); を評価する必要はありません。
関数パラメータの評価を防ぐことは可能ですか? ある状況で関数パラメーターを評価したくないので。
たとえば、デバッグ メッセージをログに記録するには、
void log(int severity, ...);
メッセージを記録したい
log(DEBUG, "%s", getErrorMsg().c_str());
重大度が DEBUG の場合、ログ機能はリリース バイナリで返されるだけです。したがって、getErrorMsg(); を評価する必要はありません。