C++ Logo


Advanced search

Subject: Re: [std-proposals] Removing ellipsis from the catch-all handler sequence
From: Jason McKesson (jmckesson_at_[hidden])
Date: 2020-06-24 12:23:51

On Mon, Jun 22, 2020 at 9:39 PM Kyle Knoepfel via Std-Proposals
<std-proposals_at_[hidden]> wrote:
> The catch-all handler sequence of a try-block is denoted by the 'catch (…)’ syntax. My proposal is that the ‘(…)’ characters could/should be removed (e.g.):
> try {
> ...
> }
> catch (std::exception const& e) {
> ...
> }
> catch { // i.e. no catch(…) anymore
> ...
> }
> The motivation here is two-fold: first, it is easier to read for the cases where access to the exception object is unnecessary; and second, it gets a closer to using ellipses for only variadic templates. My hope is that eventually C-style variadic arguments will be become a thing of the past, but that is not the topic of this post.
> In making the above suggestion, I am reminded of a response Ville made to one of my other ideas: "There's nothing impossible in it, but ideas that require changing every c++ parser on the planet need to cure cancer, and this idea doesn’t.” That is true enough in this case, but if influences from C are sometimes cancerous, then this is a step in the right direction.

OK, but you said that "influences from C are *sometimes* cancerous".
If that's your justification for the change, then you need to show
that this particular use of `...` is *actually* cancerous. That it's
fundamentally a problem in some respect other than that it is an
"influence from C". Especially since `catch(...)` means something
rather different from `function(...)`.

I don't really see a sufficiently strong motivation here. C++ is not a
clean language; it reuses and repurposes the same syntax for wildly
different purposes in several cases. Removing precisely one instance
of that will not change what C++ is. I know that sounds like "if you
can't fix everything perfectly, don't fix anything at all", but this
particular change is so trivial that I think it warrants more
justification than being a step towards one day having a version of
C++ where we "use ellipses for only variadic templates".

Especially when the next step towards that world is decidedly unlikely
to be taken.

STD-PROPOSALS list run by std-proposals-owner@lists.isocpp.org

Standard Proposals Archives on Google Groups