web-dev-qa-db-ja.com

void()を呼び出すものやってる?

ヌルポインターチェックの省略形として、3項演算子の「else」ブランチで「何もしない」として使用されているvoid();に遭遇しました

_if(var){
   var->member();
}
_

なので

var ? var->member() : void();

このように使用されているvoidキーワードへの参照を見つけることができないようですが、これはvoidキーワード自体に対する関数または関数呼び出しですか?またはそれはvoidのタイプに何もキャストしていませんか?またはこれはpassのようなもののC++構文ですか?

編集:この場合、member()の戻り値の型はvoidです。

16
Jake

私はそのようなコードを「古い運転手」だった人たちによって書かれたものだけを見たことがあります。 void()呼び出しは基本的に何もせず、3項演算子はelse-ブランチにsomethingを入れる必要があるため、人々はこれを時々行います。 if (stuff) { stuff->member(); }も1行です。

0
Dávid Kiss