Это компилируется:
int main() {
const int x = 123;
auto g = []() { std::cout << x << "\n"; };
g();
}
Но это:
int main(){
const float x = 123;
auto g = []() { std::cout << x << "\n"; };
g();
}
дает:
":" x "не записывается"
Почему?
Я тестировал его как на GCC (различные версии от 5.0.0 до 8.0.0), так и на Clang (различные версии от 4.0.0 до 6.0.0). Он ведет себя одинаково во всех случаях.