Предупреждение компилятора (уровень 3) C4686

"определяемый пользователем тип" : возможное изменение поведения, изменение в соглашении о возврате определяемого пользователем типа

Замечания

Специализация шаблона класса не была определена до его использования в возвращаемом типе. Все, что создает экземпляр класса, разрешает C4686; Объявление экземпляра или доступ к члену (например, C<int>::some_member) также являются параметрами.

Это предупреждение отключено по умолчанию. Дополнительные сведения см. в разделе "Предупреждения компилятора", отключенные по умолчанию.

Пример

Попробуйте выполнить следующие действия.

// 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>();
}