Подтвердить что ты не робот

__func__ С++ 11 функция локальная предопределенная переменная, не будет компилироваться

Локальная предопределенная переменная функции __func__ С++ 11 не компилируется в Visual Studio 2012 Professional (с установленным Update 1) с встроенным компилятором Visual Studio 2012 (v110) или ноябрьским 2012 CTP ( v120_CTP_Nov2012). Тем не менее, редактор не жалуется на красную короткую подчеркивание в __func__. __func__ должен указывать имя его содержащей функции, в данном случае foo, но это не компилируется и не вызывает редактор:

#include <iostream>
using namespace std;

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

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

Он дает ошибку компилятора:

error C2065: '__func__' : undeclared identifier

Я что-то пропустил в своем коде или это будет работать в будущем обновлении?

4b9b3361

Ответ 2

Скомпилируйте программу, используя стандарты С++ 11, поскольку __func__ - это функция С++ 11.

Итак, скомпилируйте его так:

g++ -std=c++11 foo.cpp -o foo