__func__ C 11函数的本地预定义变量,不会编译

前端之家收集整理的这篇文章主要介绍了__func__ C 11函数的本地预定义变量,不会编译前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用默认内置Visual Studio 2012(v110)编译器或2012年11月CTP(v120_CTP_Nov2012)编译器的Visual Studio 2012 Professional(安装了Update 1),不会编译函数的__func__ C 11本地预定义变量.但是,编辑不会在__func__下面投诉任何红色的下划线. __func__应该给它的包含函数名称,在这种情况下是foo,但是这两者都不编译也不会使编辑器抱怨:
#include <iostream>
using namespace std;

void foo()
{
    cout << __func__ << endl;
    return;
}

int main()
{
    foo();
    return 0;
}

它给出编译器错误

error C2065: '__func__' : undeclared identifier

我在我的代码中缺少某些东西,还是将来会更新?

解决方法

一般MSVC的C99支持相当差;您最好的选择是使用MSVC特定的__FUNCTION__宏.详见这个问题: Cross-platform defining #define for macros __FUNCTION__ and __func__

更新(2015-06-22):Visual Studio 2015支持__func__,请参阅blog post

猜你在找的C&C++相关文章