a.h
#pragma once
class A {
public:
static int a();
template <typename T>
static T b();
};
a_t.h
#pragma once
#include "a.h"
template <typename T>
T A::b(){
T r;
return r;
}
a.cpp
#include "a.h"
int A::a(){
int r;
return r;
}