C++ Logo

std-proposals

Advanced search

Re: [std-proposals] Proposal to allow multiple template parameter packs for class templates provided they can be deduced using CTAD

From: Jason McKesson <jmckesson_at_[hidden]>
Date: Sat, 29 Apr 2023 13:11:14 -0400
On Sat, Apr 29, 2023 at 12:30 PM Barry Revzin via Std-Proposals
<std-proposals_at_[hidden]> wrote:
>
>
>
> On Sat, Apr 29, 2023 at 9:37 AM Jens Maurer via Std-Proposals <std-proposals_at_[hidden]> wrote:
>>
>>
>>
>> On 29/04/2023 06.43, Anoop Rana via Std-Proposals wrote:
>> > Attached is the proposal to allow multiple template parameter packs for class templates provided they can be deduced using CTAD.
>>
>> The "before - after" comparison should not just show "invalid";
>> it should show for "before" the workaround that you need to take
>> today to achieve the same result. I guess passing around several
>> tuples might work today.
>>
>> Jens
>
>
> Also why isn't it sufficient to do this:
>
> template <typename F, typename... Args>
> struct C;
>
> template <typename... Param, typename Ret, typename... Args>
> struct C<Ret(*)(Param...), Args...>
> {
> C(Ret (*ptrFunc)(const Param&... param), const Args&... args);
> };
>
> Which is valid today?

You'd need to add explicit template deduction guides in this case, as
CTAD cannot generate them from template specializations.

That being said, while it is duplicating information, it's not *that* painful.

Received on 2023-04-29 17:11:27