编译器警告(等级 3)C4686
“user-defined type”: 行为可能有更改,UDT 中的更改返回调用约定
注解
在返回类型中使用类模板之前未定义其专用化。 实例化该类的任何对象都将解决此 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>();
}