我正在尝试将一个大型库移植到 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 做错了什么。
有没有人遇到过同样的问题?