Значение ошибки # 1006 не является функцией в коде C ++, скомпилированном Alchemy - PullRequest
1 голос
/ 06 марта 2010

Я пытаюсь перенести большую библиотеку в Алхимию. Я столкнулся с чем-то похожим на ошибку Алхимии. У меня есть класс со статическим членом. Есть статическая функция, которая ее использует. Примерно так:

В 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: Ошибка # 1006: значение не является функцией.

С другой стороны, если я использую локальную переменную того же типа в статической функции (только для проверки), она работает:

void Foo::doSomething (int a)
{
    // Test
    Bar pBarTest;
    pBarTest.doSomething(a);
}

Так что я предполагаю, что статическая переменная не инициализируется. Это прекрасно работает при компиляции с g ++ в Linux и Mac и с Visual C ++ 2008 в Windows, поэтому похоже, что Alchemy делает что-то не так.

Кто-нибудь сталкивался с такой же проблемой?

...