view gcc/testsuite/g++.dg/cpp1y/lambda-generic-const10.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line source

// PR c++/82643
// { dg-do compile { target c++14 } }

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();	// { dg-error "" }
  }(f);

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

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