2

如何为 std::array 赋予默认值?例如,像

void f(std::array<int, 3> pt = std::array<int, 3>{0, 1, 2});

检查有用的评论后。我认为这是由于编译器。如何在不创建类似 VS 2012 的函数的情况下使用它std::array<int, 3> MakeArray(...)

4

1 回答 1

3

尝试以下

void f(std::array<int, 3> pt = {0, 1, 2});

或者我会简单地写

void f(std::array<int, 3> = {0, 1, 2});

在 GCC 中,此代码未编译。看来这是编译器的错误。但是,您可以为 GCC 编写

void f( std::array<int, 3> = std::array<int, 3>( { 1, 2, 3 } ) );

或者

void f( std::array<int, 3> = { { 1, 2, 3 } } );
于 2014-03-05T17:41:55.443 回答