История изменений
Исправление 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);
Ах да, а потом это говнецо же не запустится на системе, где нет 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);
Ах да, а потом это говнецо же не запустится на системе, где нет 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].