__func__
Локальная предопределенная переменная функции C++ 11 не компилируется в Visual Studio 2012 Professional (с установленным обновлением 1) со встроенной по умолчанию Visual Studio 2012 (v110) или компилятор CTP (v120_CTP_Nov2012) в ноябре 2012 года. Тем не менее, редактор не жалуется на красную подчеркнуто подчеркивание под __func__
. __func__
предполагается дать имя содержащего его функции, в данном случае foo
, но это ни компиляций, ни сделать редактор жалуются:__func__ локальная предопределенная переменная функции C++ 11, не будет компилироваться
#include <iostream>
using namespace std;
void foo()
{
cout << __func__ << endl;
return;
}
int main()
{
foo();
return 0;
}
Это дает ошибку компилятора:
error C2065: '__func__' : undeclared identifier
я упускаю что-то в моем коде или это будет работать в будущем обновлении?
[Здесь] (http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx?PageIndex=11) он говорит, что поддержка «частичная». Не уверен, что это значит. –
«Тем не менее, редактор не жалуется ни на какие красноватые подчеркивания под' __func__'. » - * Никогда * не полагайтесь на красные squiggles, чтобы сказать вам, будет ли ваш код компилироваться или нет. IntelliSense и фактический интерфейс компилятора разрабатываются разными людьми. Если есть сомнения, компилятор прав, потому что это то, что создает ваши двоичные файлы. – Xeo