Это отклоняется g++ (4.9.3 и 5.2.0), но принимается clang 3.5.0:
int main() {
const int ci = 0;
auto lambda = [ &cap = ci ]() { };
}
g++ дает error: binding ‘const int’ to reference of type ‘int&’ discards qualifiers
. Похоже, что g++ отказывается разрешать неконстантные ссылки, за исключением, конечно, использования простого старого С++ 11 capture [&ci]
. Это кажется очень странным ограничением, возможно, ошибкой в g++?