什么是r值引用参数的正确默认值?

时间:2012-11-23 19:42:21

标签: c++ c++11 default-value move-semantics icc

假设我有一个带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{});
                   ^

这是对的吗?什么是正确的语法?

1 个答案:

答案 0 :(得分:2)

似乎icpc 13.0.1不支持默认参数中的通用初始化语法。这有效:

void func(data&& = data());
                       ^^ value-initialization