Quand nous compilons des codes dans VC, nous avons quelque chose les avertissements C4251. Dans mon cas, la plupart des avertissements proviennent du fait que STL est un membre de la classe _declspec(dllexport)
. Afin d'avoir une compréhension profonde de l'avertissement, je prévois de créer une classe qui va intriguer l'avertissement. J'ai essayé les cas suivants, mais aucun avertissement C4251 n'est donné, et je me demandais si un exemple simple peut être donné. Merci!Comment est-ce que je pourrais créer une classe qui peut me donner l'avertissement C4251
Les cas j'ai essayé:
class _declspec(dllexport) ClassTest
{
public:
ExportClass<int> myexport;
ClassUse myuse;
int i;
};
Cas 1:
template <typename T>
class ExportClass
{
public:
T a;
T b;
};
Cas n ° 2:
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;
}
};
EDIT:
I w ant pour préciser que l'avertissement ne proviendra pas de l'invocation de STL.
Merci, mais je veux créer une classe qui génère l'avertissement sans lien vers STL. Désolé, je n'ai pas été clair. – feelfree
J'ai mis à jour ma réponse avec un autre exemple. – George83