4

r値の引数を取る関数があり、デフォルト値を指定したい場合、それを正しく指定するにはどうすればよいですか?以下はgcc4.7.0で正常に動作しますが、icpc13.0.1では失敗します。

struct data {
  int _data[10];
  data() = default;
  data(data&&) = default;
  data(const data&) = default;
};
void func(data&& = data{});

icpcはそれを文句を言う

error: type name is not allowed
void func(data&& = data{});
                   ^

これは正しいです?正しい構文は何ですか?

4

1 に答える 1

3

icpc 13.0.1は、デフォルトの引数でユニバーサル初期化構文をサポートしていないようです。これは機能します:

void func(data&& = data());
                       ^^ value-initialization
于 2012-11-23T20:10:17.867 に答える