そのようなライブラリがあると想像してください:
Library.h
class DLLEXPORT LibraryClass
{
private:
int _id;
static int _last_id;
public:
LibraryClass();
bool operator == (const LibraryClass t)
{return _id == t._id;}
};
ライブラリ.cpp
#include "Library.h"
int LibraryClass::_last_id = 0;
LibraryClass::LibraryClass()
_id(_last_id)
{
++_last_id;
}
それは正しく動作しますか?Visual Studio で C4835 警告が表示されますが、動作しているようです。他のコンパイラでどのように動作するか知っている人はいますか (Linux gcc と mac gcc に興味があります)。そのようなパターンの別の「有効な」実装はありますか?