模板函数的字符串名称
String name of template function
我知道您可以使用预处理器在编译时通过 __func__
获取标准函数的文本名称
我的问题是,有没有什么方法可以获取模板函数的文本名称,包括其具体的实现细节(损坏总比没有好)?
例如,
template <typename T>
void myFunction() {
std::cout << //Function name here;
};
输出:
myFunction<int>(); -> "myFunction<int>" (or mangled name)
myFunction<char>(); -> "myFunction<char>" (or mangled name)
要与 g++ 一起使用,您可以使用 __PRETTY_FUNCTION__
。
所以
#include <iostream>
template<typename T>
void myFunction() {
std::cout << __PRETTY_FUNCTION__ << '\n';
};
int main() {
myFunction<int>();
myFunction<char>();
}
我明白了
void myFunction() [with T = int]
void myFunction() [with T = char]
我知道您可以使用预处理器在编译时通过 __func__
我的问题是,有没有什么方法可以获取模板函数的文本名称,包括其具体的实现细节(损坏总比没有好)?
例如,
template <typename T>
void myFunction() {
std::cout << //Function name here;
};
输出:
myFunction<int>(); -> "myFunction<int>" (or mangled name) myFunction<char>(); -> "myFunction<char>" (or mangled name)
要与 g++ 一起使用,您可以使用 __PRETTY_FUNCTION__
。
所以
#include <iostream>
template<typename T>
void myFunction() {
std::cout << __PRETTY_FUNCTION__ << '\n';
};
int main() {
myFunction<int>();
myFunction<char>();
}
我明白了
void myFunction() [with T = int]
void myFunction() [with T = char]