Czasami muszę nauczyć się typu wyrażenia podczas programowania w C lub C++. Czasami istnieje dobre IDE lub istniejąca dokumentacja, która mi pomoże, ale czasami nie. Często czuję, że taki konstrukt może być przydatny:Określanie typu wyrażenia
void (*myFunc)(int);
printf("%s", nameoftype(myFunc)); //"void (*)(int)"
int i, unsigned int u;
printf("%s", nameoftype(i+u)); //"unsigned int"
Jest to szczególnie prawdziwe w C++; think accessors obiektów const - czy zwracają odwołanie do const lub kopię? Zastanów się nad dynamicznymi rzutami i klasami wzorcowymi.
Jak mogę to zrobić? (ucz się typu wyrażenia)
Używam GCC, ale o ile mi wiadomo, nie ma takiego rozszerzenia. Sądzę więc, że jestem ciekawy jak ludzie rozwiązują ten problem. (Zadowalające są zarówno rozwiązania kompilacyjne, jak i runtime).
Przepraszam, myślałem, że to oczywiste, że nie szukałem inferencji typu. Chociaż nie mogę się doczekać, aby zobaczyć nowy kod sphagetti C++ 0x z automatycznymi zmiennymi dookoła :) - Wow, zapomniałem, że Geordi może pisać opisy. Przyjrzę się realizacji. Dziękuję również za link KDevelop. Może stanowić alternatywę dla Eclipse. – aib
Link do Geordi jest martwy - oto aktualna lokalizacja na github: https://github.com/Eelis/geordi – KarlC