+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
> <[email protected]> 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
>> <[email protected]> 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
>>> <[email protected]> wrote:
>>>
>>>
>>>
>>>> On 20 Sep 2024, at 7:55 AM, Ryosuke Niwa via webkit-dev
>>>> <[email protected]> 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
>>> [email protected]
>>> https://lists.webkit.org/mailman/listinfo/webkit-dev
>> _______________________________________________
>> webkit-dev mailing list
>> [email protected]
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
>
> _______________________________________________
> webkit-dev mailing list
> [email protected]
> https://lists.webkit.org/mailman/listinfo/webkit-dev
_______________________________________________
webkit-dev mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-dev