C++ Logo

std-proposals

Advanced search

Re: [std-proposals] comparison between pointers and bool

From: Alejandro Colomar <une+cxx_std-proposals_at_[hidden]>
Date: Mon, 20 Apr 2026 14:39:37 +0200
Hi,

On 2026-04-20T15:25:08+0300, sasho648 via Std-Proposals wrote:
> Bump now I had:
>
> like:
>
> void f(int a, bool d = false);
>
> int f1(int a, int *p = nullptr);
>
> and I called:
>
> int *p;
>
> f(f1(2), p);
>
>
> It compiles and runs "fine" - except the behavior is totally unintended.
>
> It's evil in my opinion.

C++ default parameters are evil, indeed.

A better design for default parameters would be leaving the parameter
empty, which would make sure you don't misplace things.

 f(f1(2, p),);

That extra comma makes sure you know what you're doing, by explicitly
asking for the default value. I do default parameters in C like that,
which can be easily implemented with macros.

In general, I would recommend avoiding default parameters in C++.

Maybe then you could propose allowing empty parameters when there's
a default parameter. That would be a safety improvement. Then
compilers could provide a warning flag for the old syntax. And with
time, even deprecate the old syntax.

>
> Obviously I did a mistake putting the second parameter in the first call
> when I wanted it to be part of the f1 call.
>
> It never ever occurred to me until later on when I was checking this part
> of the code for another thing.


Have a lovely day!
Alex

>
> On Tue, May 13, 2025 at 12:16 AM Frederick Virchanza Gotham via
> Std-Proposals <std-proposals_at_[hidden]> wrote:
>
> >
> >
> > On Monday, May 12, 2025, Thiago Macieira wrote:
> >
> >>
> >>
> >> I do think deprecating the decaying of functions to function pointers is
> >> the
> >> correct solution, but the chance of this happening before the entropy
> >> death of
> >> the universe are pretty slim.
> >>
> >>
> >
> > This is what Terry Davis did in his "Holy C" when he was writing TempleOS.
> > He actually managed to turn C into a "just in time" language. I wish he had
> > gotten the help he needed and gotten better, he was an extremely talented
> > programmer and could have contributed greatly to our art with his design
> > and implementation of programming languages and operating systems.
> >
> > https://en.wikipedia.org/wiki/TempleOS
> >
> >
> > --
> > Std-Proposals mailing list
> > Std-Proposals_at_[hidden]
> > https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
> >

> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals


-- 
<https://www.alejandro-colomar.es>

Received on 2026-04-20 12:40:15