This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/82643] lambda capture breaks constexpr-ness of non-static const constexpr member call on non-constexpr value/variable


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82643

--- Comment #1 from bastien penavayre <bastien.penavayre at epitech dot eu> ---
Comment on attachment 42426
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42426
source code

int main()
{
    struct A
    {
        constexpr int operator()() const { return 42; }
    };

    auto f = A();
    constexpr auto x = f(); //ok, call constexpr const non-static method        

    [](auto const &f) { constexpr auto x = f(); /*ok*/ }(f);
    [&]()
    {
        constexpr auto x = f(); //ko, __closure is not a constant expression    
    };

    [=]()
    {
        constexpr auto x = f(); //same ko, __closure is not a constant
expression                    
    };

}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]