On 4 October 2016 at 12:39, Bernd Schmidt wrote:
> On 10/04/2016 12:41 PM, Jonathan Wakely wrote:
>>
>> On 4 October 2016 at 10:21, David Brown wrote:
>>>
>>> On 04/10/16 01:48, Martin Sebor wrote:
>>>>
>>>> In a recent review Jason and I discussed the style convention
>>>> commonly followed in the C++ front end to annotate arguments
>>>> in calls to functions taking bool parameters with a comment
>>>> along the lines of
>>>>
>>>>   foo (1, 2, /*bar_p=*/true);
>>
>>
>> I like this convention at the call-site, otherwise "true" or "false"
>> doesn't tell you much and you have to look at the declaration.
>
>
> Isn't that the case for "1" and "2" too?

Yes, definitely!

In real cases we're unlikely to use literals for more than one or two
args, so you'd have:

foo (type, func, true);

where the variable names (hopefully) convey some more information, and
the surrounding context tells you what those variables hold anyway. So
it's literals that aren't clear what they mean at the call site.

As Nathan said, it's more of a problem when you have multiple
arguments that are a string of literals. I would say even for one arg
it can save you having to check the function declaration if it's a
function you aren't familiar with. Does "true" mean "do the optional
thing" or "skip the optional thing"?

Reply via email to