C++ странные выражения скомпилированы просто отлично
Почему следующие допустимые выражения С++? Это не lambdas
[]{}();
{}[]{};
Может кто-нибудь объяснить их мне?
Ответ 1
Первый - это лямбда без списка параметров и последующего вызова.
[]{} эквивалентно [](){}, поэтому вся строка эквивалентна
[](){}();
Вторая - это пара фигурных скобок, которые вводят, а затем сразу закрывают область, за которой следует неиспользуемое определение лямбда без списка параметров: