C++ Logo

std-discussion

Advanced search

Re: Ambiguities of the C++ Standard definitions.

From: Daniel Krügler <daniel.kruegler_at_[hidden]>
Date: Wed, 7 Dec 2022 12:52:58 +0100
Am Mi., 7. Dez. 2022 um 12:21 Uhr schrieb Vladimir Grigoriev via
Std-Discussion <std-discussion_at_[hidden]>:
>
> The main problem of the C+ Standard is that some definitions can be interpreted in differenct ways.

Is that really a specific problem of the C++ standard or just a
problem of every natural language?

> Consider for example the following quote from the C++ Standard
>
> 1 A trivially copyable class is a class: (1.1) — that has at least one eligible copy constructor, move constructor, copy assignment operator, or move assignment operator
>
> The phrase can be interpreted for example like
>
> 1 A trivially copyable class is a class: (1.1) — that has at least one eligible copy constructor, or one eligible move constructor, or one eligible copy assignment operator, or one eligible move assignment operator
>
> or like
>
> 1 A trivially copyable class is a class: (1.1) — that has at least one eligible copy constructor, and at least one eligible move constructor, and at least one eligible copy assignment operator, or move assignment operator
>
> As you can see the definition can be interpreted differently.
>
> How should the definition be interpreted?

My understanding of the Oxford comma rules
(https://en.wikipedia.org/wiki/Serial_comma) is that in such a list
each item is combined with the "or"/"and" at the very last end to
signal the combination operator between the individual items, which
would correspond to your first interpretation.

Thanks,

- Daniel

Received on 2022-12-07 11:53:11