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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
But clang does reject this:

struct tuple1
{
    int a;
};
struct tuple3
{
    tuple1 a0;
    float b0;
};

void bar1(tuple3 tuple) {}

template <typename T>
concept test_expression = requires(T value) {
                            bar1({{12}, value});
                          };

template <test_expression T>
void foo(T&&) {}

int main(int argc, char** argv) {
  // The following is a valid expression that compiles in GCC and Clang.
  // bar1({{12}, 12});

  // This concept fails in GCC (but not Clang).
  foo(12);

  return 0;
}

So this might be a bug in clang for tuple case ...

Reply via email to