Two template classes have two methods each which call the other class's method:
// 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
    }
};
How can I get this to work? Simply adding #include "Bar.h" to Foo.h (or vice versa) doesn't work because each class needs the other one.
EDIT: I also tried forward declarations, but it still fails at linking stage:
// Bar.h
template <typename T>
class Foo {
public:
    static void method();
};
// Foo.h
template <typename T>
class Bar {
public:
    static void method();
};
 
    