Функция возвращает массив

Я знаю, что функция не может вернуть массив, но это объявление функции

auto fun(/*...*/) -> int [2]

может пройти компиляцию. Зачем!?

1

Решение

Действительно, функция не может возвращать простой массив по значению.

Объявление с таким возвращаемым типом является некорректным, и если компилятор принимает его без предупреждения, то компилятор не полностью соответствует стандарту. Возможно, это ошибка — или расширение языка.

Похоже, что эта ошибка воспроизводима в g ++ — 6.1. Если вы попытаетесь определить функцию, которая возвращает массив, вы увидите это смешное сообщение об ошибке:

error: cannot convert 'int [2]' to 'int [2]' in return
1

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

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

По вопросам рекламы [email protected]