4

假设我有一个接受 r 值参数的函数,并且我想提供一个默认值,我该如何正确指定它?以下内容适用于 gcc 4.7.0,但适用于 icpc 13.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 回答