Каково правильное значение по умолчанию для ссылочного аргумента r-значения?

Предположим, у меня есть функция, которая принимает аргумент 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{});
^

Это правильно? Какой правильный синтаксис?

3

Решение

Похоже, что icpc 13.0.1 не поддерживает синтаксис универсальной инициализации в аргументах по умолчанию. Это работает:

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector