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