私はいくつかの静的constメンバーの次の宣言を持っています
.h
class MyClass : public MyBase
{
public:
static const unsigned char sInvalid;
static const unsigned char sOutside;
static const unsigned char sInside;
//(41 more ...)
}
.cpp
const unsigned char MyClass::sInvalid = 0;
const unsigned char MyClass::sOutside = 1;
const unsigned char MyClass::sInside = 2;
//and so on
ある時点で、これらの値を次のようなスイッチで使用したいと思います。
unsigned char value;
...
switch(value) {
case MyClass::sInvalid : /*Do some ;*/ break;
case MyClass::sOutside : /*Do some ;*/ break;
...
}
しかし、次のコンパイラエラーが発生します。エラー:'MyClass::sInvalid'は定数式に表示できません。
static const unsigned char
私は他のswitch-cannot-appear-constant-stuffを読みましたが、それらが定数式ではない理由がわからないため、答えが見つかりませんでした。
gcc4.5を使用しています。