大きなライブラリを Alchemy に移植しようとしています。Alchemy のバグのようなものに遭遇しました。静的メンバーを持つクラスがあります。それを使用する静的関数があります。このようなもの:
foo.h で:
class Foo
{
static Bar m_pBar;
static void doSomething (int a);
}
foo.cpp で:
Bar Foo::m_pBar;
void Foo::doSomething (int a)
{
m_pBar.doSomething(a);
}
Foo::doSomething(a) を実行すると、 TypeError: Error #1006: value is not a function が発生します。
一方、静的関数で同じタイプのローカル変数を使用すると(テストするためだけに)、機能します:
void Foo::doSomething (int a)
{
// Test
Bar pBarTest;
pBarTest.doSomething(a);
}
だから私の推測では、静的変数は初期化されていません。これは、Linux と Mac では g++ でコンパイルし、Windows では Visual C++ 2008 でコンパイルすると正常に動作するため、Alchemy が何か問題を起こしているように見えます。
誰かがこの同じ問題に遭遇しましたか?