+1 for { } as well, for all the mentioned good reasons. But just to be complete, there's one exception that should probably be noted if/when we document this: For classes that have a constructor taking `std::initializer_list<T>` and other constructors that take `T` (+ conversions), using braced-initialization will *always* call the initializer_list one! In this case, we'd need to use parentheses if another constructor was wanted. E.g.: `std::vector<int> vb { 3, 2 }` -> [ 3 2 ], vs `std::vector<int> vp(3, 2);` -> [ 2 2 2 ] (3 copies of value 2)! At a glance, I haven't found WK classes that have both types of competing constructors together, so hopefully this should be a rare issue. May be worth another guideline, like "If you define a constructor taking std::initializer_list<type>, avoid defining other constructors for similar types"?
Cheers, Gerald > On 24 Sep 2024, at 02:35, Geoff Garen via webkit-dev > <webkit-dev@lists.webkit.org> wrote: > > +1 for { } because I like catching bugs. > > But also: If Chris is right that { } is the only way to handle types without > constructors, and the goal is to pick one syntax, then { } is the only > possible solution, because standardizing on = would require exceptions for > types without constructors. > > Thanks, > Geoff > >> On Sep 20, 2024, at 2:29 PM, Yusuke Suzuki via webkit-dev >> <webkit-dev@lists.webkit.org> wrote: >> >> I prefer { } style. >> It can catch implicit narrowing bugs, which does not work with = style. >> >> Best regards, >> - Yusuke >> >>> On Sep 19, 2024, at 4:13 PM, Jean-Yves Avenard via webkit-dev >>> <webkit-dev@lists.webkit.org> wrote: >>> >>> >>> >>>> On 20 Sep 2024, at 7:55 AM, Ryosuke Niwa via webkit-dev >>>> <webkit-dev@lists.webkit.org> wrote: >>>> >>>> >>>> Should we do: >>>> >>>> struct Foo { >>>> int bar = 0; >>>> } >>>> >>>> Or >>>> >>>> struct Foo { >>>> int bar { 0 }; >>>> } >>>> >>>> We do both at the moment. >>>> >>>> - R. Niwa >>> >>> I think `int bar = 0` reads better. >>> >>> I only ever see (and use) { } and I thought that was the proper coding >>> style. >>> >>> I’m surprised it’s not in our guidelines. >>> >>> Jean-Yves >>> _______________________________________________ >>> webkit-dev mailing list >>> webkit-dev@lists.webkit.org >>> https://lists.webkit.org/mailman/listinfo/webkit-dev >> _______________________________________________ >> webkit-dev mailing list >> webkit-dev@lists.webkit.org >> https://lists.webkit.org/mailman/listinfo/webkit-dev > > _______________________________________________ > webkit-dev mailing list > webkit-dev@lists.webkit.org > https://lists.webkit.org/mailman/listinfo/webkit-dev
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev