Здравствуйте.
Имеется обычный класс
classA, в котором есть статический объект другого класса
classB. Проблема в том, что не вызывается конструктор класса
classB.
Код примерно следующий:
file classA.h
classA
{
static classB<int> b;
public:
static void fo ()
{
b.func();
}
};
file classA.cpp
classB<int> classA::b;
file classB.h
template<typename T>
classB
{
public:
classB()
{
//вот сюда не заходит
}
void func()
{
//ошибка, т.к. в конструкторе не были проинициализированы данные
}
};
и main.cpp
int main()
{
classA::fo();
while(1)
{}
}
если же сделать так, то все работает
int main()
{
classA a = new classA();
classA::fo();
while(1)
{}
}
Компилятор GCC под ARM.
В обычном GCC все работает.