2015-11-15 2 views
0

Есть ли способ получить идентификатор функции или объекта класса в виде строки?
Как:C++ - Есть ли способ получить идентификатор в виде строки?

void SomeFunc() {} 

int main() 
{ 
    SomeClass classObject(1, 2, 3); 
    std::cout << getName(classObject) << std::endl; 
    // Will print "classObject" 
    SomeClass name; 
    std::cout << getName(name) << std::endl; 
    // Will print "name" 
    std::cout << getName(SomeFunc) << std::endl; 
    // Will print "SomeFunc" 
} 
+2

Могу ли я спросить, почему вам нужно что? –

+1

Почему вы не печатаете строковый литерал? – Vincent

ответ

4

у вас есть оператор stringification для макросов:

#define getName(a) #a 

превратит все, что он получает в качестве аргумента строку в кавычках

getName(something) turns into "something"