gpt4 book ai didi

c++ - 样板函数名称

转载 作者:行者123 更新时间:2023-11-30 00:50:57 25 4
gpt4 key购买 nike

在我参与的项目中,大多数项目都有用于为函数名称创建局部变量的样板代码。最快/最好的方法是什么?或者,是否有更快/更好的方法来做到这一点?我们确信这些函数会被频繁调用,而且这是一个性能关键的项目。那么,初始化函数名的最佳方式是什么?

一些我见过的:

/*1*/  const static std::string functionName("function1");
/*2*/ const static std::string functionName( __PRETTY_FUNCTION__ );
/*3*/ const std::string functionName("function1");
/*4*/ const char functionName [] = "function1";

编辑:我想这很明显,但我们使用这样一个声明的原因是我们可以使用 functionName 变量来打印函数中的调试信息。也许它不明显的原因是因为我们没有很好地实现它。我很想听听其他实现方法。

最佳答案

C++11 8.4.1/8:

The function-local predefined variable __func__ is defined as if a definition of the form

static const char __func__[] = "function-name";

had been provided, where function-name is an implementation-defined string. It is unspecified whether such a variable has an address distinct from that of any other object in the program.

[ Example:

  struct S {
S() : s(__func__) { } // OK
const char *s;
};

void f(const char * s = __func__); // error: __func__ is undeclared

—end example ]

关于c++ - 样板函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23298586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com