C++ Logo

STD-PROPOSALS

Advanced search

Subject: Re: [std-proposals] Flexible function parameters
From: Jason McKesson (jmckesson_at_[hidden])
Date: 2020-07-09 22:24:35


On Thu, Jul 9, 2020 at 4:19 PM Matthew Woehlke via Std-Proposals
<std-proposals_at_[hidden]> wrote:
>
> On 09/07/2020 11.06, Filippo Casarin via Std-Proposals wrote:
> > Given the code
> >
> > void foo(int a=1000696967, int b=1000696969);
> >
> > In c++20 there is no way to call `foo` specifying a value for `b` but not
> > for `a`
>
> I would much prefer named parameters for that.
>
> Also, use of `;` inside a parameter list is very nearly 'over my dead
> body' territory, at least for me. And I want `:` for named parameters.
>
> > In c++20 you can't have multiple parameters packs in a function
>
> Language-level tuples, which have been kicked around, are probably a
> better solution to that.

Even without language-level tuples per-se, you can accomplish similar
effects with regular tuples:

template<typename ...Args1, typename ...Args2>
void func(std::tuple<Args1...> args1, std::tuple<Args2...> args2);

Perfect forwarding doesn't exactly work here, but with generalized
pack declaration and usage (P1858), using `args1` and `args2` will be
almost as simple as using a parameter pack itself.


STD-PROPOSALS list run by herb.sutter at gmail.com

Standard Proposals Archives on Google Groups