典型的な例:例外が発生しやすいコードでva_listを使用することは安全ですか?
void foo(const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
// might throw, might not. who knows.
bar(fmt, args);
// uh-oh...
va_end(args);
}
これはつまりは、C++でva_list
を使用することが一般的ではない、悪い考えますか?私がbar
をtry-catchでラップすると、それは役に立ちますか?いくつかの選択肢は何ですか?
IMHO可変長パラメータリストは悪い考えです。合理的な解決策のために 'iostream'モデルを見てください。 –
ちょうどそれをtry/catchで囲み、 "安全"でなければなりません。 – jmucchiello
@EdHeal Variableテンプレートを使用してそれらを実装する限り、可変長パラメータのリストは問題ありません。 –