Kompilator ostrzeżenia (poziom 3) C4686
"Typ danych zdefiniowany przez użytkownika": możliwe zmiany w zachowaniu, zmiana UDT zwrotu konwencji wywoływania
Specjalizacji szablon klasy nie jest zdefiniowany, zanim został użyty typ zwracany.Wszystko, co tworzy wystąpienie klasy rozwiąże C4686; deklarowanie instancji lub uzyskiwania dostępu do członka (C <int>:: nic) są również opcje.
To ostrzeżenie jest wynikiem pracy, aby Visual C++.NET 2003 kompilator zgodne ze standardem ISO C++.
To ostrzeżenie jest domyślnie wyłączona.Zobacz Kompilator ostrzeżenia że są wyłączone domyślnie Aby uzyskać więcej informacji.
Zamiast tego spróbuj następujących
// C4686.cpp
// compile with: /W3
#pragma warning (default : 4686)
template <class T>
class C;
template <class T>
C<T> f(T);
template <class T>
class C {};
int main() {
f(1); // C4686
}
template <class T>
C<T> f(T) {
return C<int>();
}