LINUX.ORG.RU

История изменений

Исправление kawaii_neko, (текущая версия) :

А по поводу компиляторов - ты не найдешь живой дистрибутив, где этот код не соберется.

ubuntu 16.04:

$ g++ -Wall 1.cpp 
1.cpp: In function ‘int main()’:
1.cpp:4:5: warning: ‘auto’ changes meaning in C++11; please remove it [-Wc++0x-compat]
     auto do_foo = []( auto& var ){ if (var % 2 == 0) ++var; };
     ^
1.cpp:4:10: error: ‘do_foo’ does not name a type
     auto do_foo = []( auto& var ){ if (var % 2 == 0) ++var; };
          ^
1.cpp:5:13: error: ‘do_foo’ was not declared in this scope
     do_foo(x);
C++11 в 2017 году до сих пор не является стандартом компиляции по умолчанию.

Ах да, а потом это говнецо же не запустится на системе, где нет libstdc++ с правильным ABI.

UPD:

p$ g++ -Wall 1.cpp -std=c++11
1.cpp: In function ‘int main()’:
1.cpp:4:23: error: use of ‘auto’ in lambda parameter declaration only available with -std=c++14 or -std=gnu++14
     auto do_foo = []( auto& var ){ if (var % 2 == 0) ++var; };

Исправление kawaii_neko, :

А по поводу компиляторов - ты не найдешь живой дистрибутив, где этот код не соберется.

ubuntu 16.04:

$ g++ -Wall 1.cpp 
1.cpp: In function ‘int main()’:
1.cpp:4:5: warning: ‘auto’ changes meaning in C++11; please remove it [-Wc++0x-compat]
     auto do_foo = []( auto& var ){ if (var % 2 == 0) ++var; };
     ^
1.cpp:4:10: error: ‘do_foo’ does not name a type
     auto do_foo = []( auto& var ){ if (var % 2 == 0) ++var; };
          ^
1.cpp:5:13: error: ‘do_foo’ was not declared in this scope
     do_foo(x);
C++11 в 2017 году до сих пор не является стандартом компиляции по умолчанию.

Ах да, а потом это говнецо же не запустится на системе, где нет libstdc++ с правильным ABI.

Исходная версия kawaii_neko, :

А по поводу компиляторов - ты не найдешь живой дистрибутив, где этот код не соберется.

ubuntu 16.04:

$ g++ -Wall 1.cpp 
1.cpp: In function ‘int main()’:
1.cpp:4:5: warning: ‘auto’ changes meaning in C++11; please remove it [-Wc++0x-compat]
     auto do_foo = []( auto& var ){ if (var % 2 == 0) ++var; };
     ^
1.cpp:4:10: error: ‘do_foo’ does not name a type
     auto do_foo = []( auto& var ){ if (var % 2 == 0) ++var; };
          ^
1.cpp:5:13: error: ‘do_foo’ was not declared in this scope
     do_foo(x);

C++11 в 2017 году до сих пор не является стандартом компиляции по умолчанию.

Ах да, а потом это говнецо же не запустится на системе, где нет libstdc++ [i]с правильным ABI[/i].