假设我有一个接受右值参数的函数并且我想提供一个默认值,我该如何正确指定它?以下适用于 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{});
^
这是正确的吗?正确的语法是什么?
最佳答案
似乎 icpc 13.0.1 不支持默认参数中的通用初始化语法。这有效:
void func(data&& = data());
^^ value-initialization
关于c++ - 右值引用参数的正确默认值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13534932/