こんなコードを書くと、Visual C++ 2005 ではエラーになります。

#include <stdio.h>
class A { public: static const float a = 1.0; };
int main(void)
{
    printf("%f\n", A::a);
    return 0;
}
a.cpp(2) : error C2864: 'A::a' : スタティック const 整数データ メンバ以外をクラス内で初期化することはできません

構造体とかならしょうがないとして、float ぐらい初期化させてくれよと思うわけです。

Read the rest of this entry