我正在考虑this solution来减少__PRETTY_FUNCTION__
的输出。该解决方案删除了返回类型,参数和修饰符。
我想知道以下修改是否适用于任何情况:
inline std::string methodName(const std::string& prettyFunction) {
size_t parenthesis = prettyFunction.find("("); //Then I can use parenthesis index as end for my string
size_t begin = prettyFunction.rfind(" ",parenthesis) + 1;
(...)
}
即,我想了解返回类型(或函数名左侧的__PRETTY_FUNCTION__
返回的字符串中的任何其他内容)是否包含开括号的可能性(
我在a different way中实施了该方法。
答案 0 :(得分:2)
是的,可以有其他括号。这是一个例子:
#include <iostream>
using fptr = void(*)();
fptr func() {
std::cout << __PRETTY_FUNCTION__ << '\n';
return nullptr;
}
int main()
{
func();
}
使用g ++ -std = c ++ 14的输出是:
void (* func())()