Я разрабатываю библиотеку, когда я компилирую свой код с помощью GCC (в Windows с CodeBlocks), исходный код не компилируется, и появляется эта ошибка:
ошибка: неполный тип 'claculator'используется в описателе вложенного имени.
Я пишу пример кода, который генерирует эту ошибку точно:
class claculator;
template<class T>
class my_class
{
public:
void test()
{
// GCC error: incomplete type 'claculator' used in nested name specifier
int x = claculator::add(1, 2);
}
T m_t;
};
// This class SHOULD after my_class.
// I can not move this class to top of my_class.
class claculator
{
public:
static int add(int a, int b)
{
return a+b;
}
};
int main()
{
my_class<int> c;
c.test();
return 0;
}
Как я могу решить эту ошибку?
Обратите внимание, чтоМой исходный код успешно скомпилирован в Visual Studio.
Спасибо.