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

            Bug ID: 115114
           Summary: aggregate initialization with parens fails when there
                    is a base class
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: eric.niebler at gmail dot com
  Target Milestone: ---

I believe the following is valid C++20:

  struct get_answer {};

  template <class Query, class Value>
  struct with : Query {
    Value value;
  };

  int main() {
    with w1{get_answer(), 42}; // works

    with w2(get_answer(), 42); // fails
  }

clang and msvc accept this code. gcc-trunk rejects it. See
https://godbolt.org/z/KvGjn47f9.

If I change the definition of the `with` class template to the following, the
code compiles:

  template <class Query, class Value>
  struct with {
    Query query;
    Value value;
  };

Reply via email to