Errore del compilatore C3550
in questo contesto sono consentiti solo valori 'decltype(auto)' normali
Se decltype(auto)
viene usato come segnaposto per il tipo restituito di una funzione, deve essere usato da solo. Non può essere usato come parte di una dichiarazione di puntatore (decltype(auto)*
), di una dichiarazione di riferimento (decltype(auto)&
) di qualsiasi altra qualifica simile.
Esempio
L'esempio seguente genera l'errore C3550:
// C3550.cpp
// compile with: /c
decltype(auto)* func1(); // C3550
decltype(auto)& func2(); // C3550
decltype(auto)&& func3(); // C3550
auto* func4(); // OK
Per risolvere l'errore, rimuovere tutte le qualificazioni non valide in decltype(auto)
. Ad esempio, decltype(auto)* func1()
può essere trasformato in auto* func1()
.