[ Nedeljko @ 27.08.2008. 12:41 ] @
Imam šablonsku klasu, neka se zove A, koja ima argument koji je neki tip i koja treba da ima metodu koja vraća ime tog tipa kao string. Na primer: Code: #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? |