staticな整数型定数メンバ

staticな整数型定数メンバは、
コンパイラにもよるがクラス定義時に初期化できる(整数型のみ)らしい。

class func {
  public:
    static const int NUM = 10;   // 初期化可能
    char buf[NUM];               // 配列のサイズとして使用可能
};

しかもstaticな整数型定数メンバの

  • 追加
  • 削除
  • 初期値の変更

をしてもbinary compatibilityを崩さないっぽい。

staticなメンバの追加が問題ないのは
Policies/Binary Compatibility Issues With C++ - KDE TechBaseに書いてある。(自分の環境では問題なかったが自信なし)