Hoge.h
class Hoge {
public:
static func();
private:
static std::vector<int> m_vector;
static std::bitset<16> m_bitset;
static int m_array[16];
};
Hoge.cpp
Hoge::func()
{
m_vector.clear();
m_bitset.reset();
m_array[0] = 0;
}
という風にしてしまうと、LNK2001の外部参照が未解決リンクエラーが出てしまいます。
staticなメンバ変数は、ヘッダ上では宣言しているだけなので、実体の確保はソース(cpp)側で行う必要があります。
Hoge.cppのfunc()の前に
std::vector<int> Hoge::m_vector; std::bitset<16> Hoge::m_bitset; int Hoge::m_array[16];
を追記して、暗黙の初期化を行うようにすればリンクエラーは解消されます。