I have a macro defined in a template class to use the real class Name. It may be not clear, and the code is below:
#include <iostream>
void Test_CB()
{
}
#define TEST_INTERFACE(xx) Test_##xx()
template <class T>
class CA
{
public:
    void Write()
    {
        TEST_INTERFACE(T);
    }
};
class CB : public CA<CB>
{
};
int main()
{
    CB b;
    b.Write();
    return 0;
}
I hope the result is class name:CB but on gcc, it output class name:T
Is there any way to make it work as windows?
Maybe there is a problem with my presentation, I mean the visual c++ on windows and gcc on linux. I don't only want to get the type name. What I want is an identifier with part of the class name. I update the code.
 
    