Rozwijanie argumentów szablonu

Czy możliwe jest w C ++ zawężenie argumentów szablonów? Próbowałem tego:

#define STRINGIFY(x) #x

template <typename T>
struct Stringify
{
     Stringify()
     {
          cout<<STRINGIFY(T)<<endl;
     }
};

int main() 
{
     Stringify<int> s;
}

Ale otrzymuję „T”, a nie „int”. Wydaje się, że preprocesory uruchamiają się przed rozdzielczością szablonu.

Czy jest inny sposób, aby to zrobić?

Czy istnieje sposób, aby wstępne przetwarzanie odbyło się po rozdzielczości szablonu? (Kompilator to VC ++).

questionAnswers(8)

yourAnswerToTheQuestion