-5

T*標準C++で初期化された一時的な値を作成する方法は?

void foo( int );
void bar( int * );

int main()
{
    foo( int() );  // works. a temporary int - value initialized.
    bar( ??? );    // how to create a temporary int *?
}

ただの好奇心から。

4

3 に答える 3

4

最も簡単な方法は、中括弧を使用することです。

 bar({});

またはusing声明:

using p = int*;
bar( p() );    // how to create a temporary int *?

sehenullptrは、 、0、およびのばかげて明白な答えを思い出しましたNULL

bar(nullptr);

そして、もっと多くの方法があると確信しています。

GCC では複合リテラルを使用できますが、技術的には許可されていません

 bar((int*){});

http://coliru.stacked-crooked.com/a/7a65dcb135a87ada

于 2015-01-29T01:38:11.327 に答える