0

In A.h:

namespace ns {
    template <typename T>
    class A {
    public:
        static void test();
    }
}

In A.cpp:

#include "A.h"

using ns::A;

template <typename T>
void A<T>::test() {
    // Do something
}

In main.cpp:

#include "A.h"

using ns::A;

int main() {
    A<int>::test();
    return 0;
}

The compiler says:

main.cpp:(.text+0x5): undefined reference to `ns::A<\int>::test()'

collect2: error: ld returned 1 exit status

erlengzi
  • 359
  • 4
  • 15

0 Answers0