1

我正在尝试将一个大型库移植到 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 做错了什么。

有没有人遇到过同样的问题?

4

0 回答 0