У меня есть небольшое "лямбда-выражение" в функции ниже:
int main()
{
    int x = 10;
    auto lambda = [=] () { return x + 3; };
}
Ниже приведен "класс анонимного замыкания", сгенерированный для вышеприведенного лямбда-выражения.
int main()
{
    int x = 10;
    class __lambda_3_19
    {
        public: inline /*constexpr */ int operator()() const
        {
            return x + 3;
        }
        private:
            int x;
        public: __lambda_3_19(int _x) : x{_x}
          {}
    };
    __lambda_3_19 lambda = __lambda_3_19{x};
}
 Замыкание "operator()", сгенерированное компилятором, неявно const. Почему стандартная комиссия делает его const по умолчанию?
