Два шаблонных класса имеют два метода, каждый из которых вызывает метод другого класса:
// Foo.h
template<typename T>
class Foo {
public:
static void call_bar() {
Bar<int>::method();
}
static void method() {
// some code
}
};
// Bar.h
template<typename T>
class Bar {
public:
static void call_foo() {
Foo<int>::method();
}
static void method() {
// some code
}
};
Как мне заставить это работать?Простое добавление #include "Bar.h"
в Foo.h (или наоборот) не работает, потому что каждому классу нужен другой класс.
РЕДАКТИРОВАТЬ: Я также пробовал пересылать объявления, но все еще не удается на этапе связывания:
// Bar.h
template <typename T>
class Foo {
public:
static void method();
};
// Foo.h
template <typename T>
class Bar {
public:
static void method();
};