#include <iostream>
using namespace std;
#define QUOTE(x) #x
template<typename T>
class A {
public:
static void ispisiTip() { cout << QUOTE(T) << endl; }
};
int main() {
A<int>::ispisiTip();
return 0;
}
Problem je u tome što ovaj program ispisuje "T", a ne "int". Ukoliko umesto "QUOTE(T)" stavim "#T", dobijam grešku pri prevođenju. Sve je to logično, jer pre svih ostalih faza prevođenja pretprocesor mora u potpunosti da završi svoj deo posla. Šta da radim?