Chyba kompilátoru C3550
v tomto kontextu je povolena pouze prostý decltype(auto)".
Pokud decltype(auto)
se použije jako zástupný symbol pro návratový typ funkce, musí se použít samostatně. Nelze jej použít jako součást deklarace ukazatele (decltype(auto)*
), referenční deklarace (decltype(auto)&
) nebo jakékoli jiné takové kvalifikace.
Příklad
Následující ukázka vygeneruje C3550:
// C3550.cpp
// compile with: /c
decltype(auto)* func1(); // C3550
decltype(auto)& func2(); // C3550
decltype(auto)&& func3(); // C3550
auto* func4(); // OK
Chcete-li chybu vyřešit, odeberte veškerou neplatnou kvalifikaci dne decltype(auto)
. Lze například decltype(auto)* func1()
převést na auto* func1()
.