当我们在 VC 中编译代码时,我们会遇到 C4251 警告。就我而言,大多数警告来自于 STL 是_declspec(dllexport)
该类的成员这一事实。为了对警告有深入的了解,我计划创建一个能够引起警告的类。下面的案例我都试过了,但是没有给出C4251的警告,想知道能不能给出一个简单的例子。谢谢!
我尝试过的案例:
class _declspec(dllexport) ClassTest
{
public:
ExportClass<int> myexport;
ClassUse myuse;
int i;
};
情况1:
template <typename T>
class ExportClass
{
public:
T a;
T b;
};
案例二:
class ClassUse
{
public:
int counts;
float f_value;
std::vector<int> abc;
void get_func();
template <typename T>
T ouput_value()
{
return static_cast<T>(3);
};
template<class T>
int connected()
{
T abc;
return 3;
}
};
编辑:
我想明确指出,警告不会来自调用 STL。