Предупреждение компилятора (уровень 3) C4686
Обновлен: Ноябрь 2007
'user-defined type' : possible change in behavior, change in UDT return calling convention
"пользовательский тип": возможное изменение поведения, изменение формата вызова для возвращаемого значения UDT
Специализация шаблона класса не определена перед использованием в типе возвращаемого значения. Чтобы устранить ошибку C4686, выполните инициализацию экземпляра любого класса. Также можно объявить экземпляр или выполнить обращение к члену (C<int>::"член").
Это предупреждение отображается в результате выполнения действий по обеспечению совместимости компилятора Visual C++ .NET 2003 со стандартом ISO C++.
Дополнительные сведения см. в разделе Сводная информация о критических изменениях, которые могут приводить к ошибкам компиляции.
Данное предупреждение по умолчанию отключено. Дополнительные сведения см. в разделе Отключенные по умолчанию предупреждения компилятора.
Попробуйте вместо этого использовать следующий код:
// 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>();
}