【发布时间】:2012-11-23 19:42:21
【问题描述】:
假设我有一个接受 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{});
^
这是正确的吗?正确的语法是什么?
【问题讨论】:
-
这里icpc支持通用初始化语法吗?你试过值初始化器
data && = data()吗? -
@ecatmur 确实有效。所以这似乎是一个英特尔问题。版本 13.0.1 应该与 gcc 4.7.0 兼容,但事实并非如此!
标签: c++ c++11 default-value move-semantics icc