Поделиться через


Ошибка компилятора C3550

только неструктурированный описатель "decltype(auto)" разрешен в этом контексте

Если decltype(auto) используется как заполнитель для типа возвращаемого значения функции, он должен применяться сам по себе. Невозможно использовать его как часть объявления указателя (decltype(auto)*), объявления ссылки (decltype(auto)&) или любой другого подобного объявления.

Пример

Следующий пример приводит к возникновению ошибки C3550:

// C3550.cpp
// compile with: /c
decltype(auto)* func1();   // C3550
decltype(auto)& func2();   // C3550
decltype(auto)&& func3();   // C3550

auto* func4();   // OK

Чтобы устранить ошибку, удалите всю недопустимую квалификацию decltype(auto). Например, decltype(auto)* func1() можно превратить в auto* func1().

См. также

auto