假设我有一个带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{});
^
这是对的吗?什么是正确的语法?
答案 0 :(得分:2)
似乎icpc 13.0.1不支持默认参数中的通用初始化语法。这有效:
void func(data&& = data());
^^ value-initialization