const staticなメンバ変数の実装をヘッダファイルで行うと、 duplicate symbols for architecture って怒られることがある。複数のソースがconst staticなメンバ変数を実装しているヘッダをincludeしていると起こる。

A.cpp            -> A.o (with const static member )

    ↓ include

conststatic.h

  ( const static member )

  ↑ include

B.cpp           -> B.o (with const static member)

こうなった時に、A.oにもB.oにもconst static memberの実体が存在していて重複が起こり、リンクエラーが発生する。