Поделиться через


Предупреждение компилятора (уровень 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>();
}