Udostępnij za pomocą


Błąd kompilatora C3550

w tym kontekście dozwolone jest tylko zwykłe wyrażenie "decltype(auto)"

Uwagi

Jeśli decltype(auto) jest używany jako symbol zastępczy dla zwracanego typu funkcji, musi być używany przez siebie. Nie można jej używać jako części deklaracji wskaźnika (decltype(auto)*), deklaracji referencyjnej (decltype(auto)&) ani jakiejkolwiek innej takiej kwalifikacji.

Przykład

Poniższy przykład generuje kod C3550:

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

auto* func4();   // OK

Aby rozwiązać ten problem, usuń wszystkie nielegalne kwalifikacje w systemie decltype(auto). Na przykład decltype(auto)* func1() można przekształcić w auto* func1().

Zobacz też

auto