Erro do Compilador C3550

somente 'decltype(auto)' simples é permitido neste contexto

Se decltype(auto) for usado como um espaço reservado para o tipo de retorno de uma função, ele deverá ser usado por si só. Ele não pode ser usado como parte de uma declaração de ponteiro (decltype(auto)*), uma declaração de referência (decltype(auto)&) ou qualquer outra qualificação desse tipo.

Exemplo

O exemplo a seguir gera C3550:

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

auto* func4();   // OK

Para resolver o erro, remova todas as qualificações ilegais no decltype(auto). Por exemplo, decltype(auto)* func1() pode ser transformado em auto* func1().

Confira também

auto