15

この文書では、著者は次のように述べています

std :: stringはPODタイプではありませんが、PODタイプのみが省略記号「...」の引数になります。

私はこれをとして理解していPassing NON-POD type to Variadic function is undefined behaviorます。正しいですか?
しかし、彼はC / C ++標準と言っていますか?私はn3242C++仕様でそれを見つけようとしました。しかし、見つけることができません。

私は正しく理解していることを知りたいのですが、これは標準です。

4

1 に答える 1

11

C ++ 11 5.2.2/7で指定されています:

自明でないコピーコンストラクター、自明でない移動コンストラクター、または自明でないデストラクタを持ち、対応するパラメーターがないクラスタイプの潜在的に評価される引数を渡すことは、実装定義のセマンティクスで条件付きでサポートされます。

したがって、それをサポートするかどうかは各コンパイラー次第です。ポータブルコードは、実装で定義された動作に依存することはできません。古い規格では、それは単に未定義でした。

于 2012-04-10T06:10:09.660 に答える