gpt4 book ai didi

c++ - 可用于打印方法名称的宏/关键字?

转载 作者:IT老高 更新时间:2023-10-28 14:01:10 24 4
gpt4 key购买 nike

__FILE____LINE__ 是众所周知的。从 C99 开始有一个 __func__

#include <iostream>
struct Foo {
void Do(){ std::cout << __func__ << std::endl; }
};

int main()
{
std::cout << __func__ << std::endl;
Foo foo; foo.Do();
return 0;
}

会输出

main
Do

是否有任何宏/关键字会输出方法名称,如 Foo::Do

最佳答案

Boost 有一个特殊的实用宏,称为 BOOST_CURRENT_FUNCTION这隐藏了编译器实现之间的差异。

在它的实现之后,我们看到有几个宏取决于编译器:

  • __PRETTY_FUNCTION__ -- GCC、MetroWerks、Digital Mars、ICC、MinGW
  • __FUNCSIG__ -- MSVC
  • __FUNCTION__ -- 英特尔和 IBM
  • __FUNC__ -- Borland
  • __func__ -- ANSI C99

关于c++ - 可用于打印方法名称的宏/关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2192680/

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