![]() |
1
3
您可能希望保持第一个参数和其余参数的分隔,可以使用:
请注意,我使用了完美转发来避免复制任何参数。上述方法还有避免递归的额外好处,因此可能会产生更好(更快)的代码。
我的写作方式
|
|
2
2
从转发类型的函数中调用该函数,并具有如下的static_assert:
|
![]() |
3
2
在我看来,有两个问题:
我对项目1的解决方案如下:
基本上,我不是在模板列表为空时结束递归,而是在它只包含一种类型时结束递归。上面的代码和问题中的代码有一个区别:if在最后一项之后没有输出任何空格。相反,它只是输出换行符。 关于第二个问题,请参阅上面Daniel Frey的回答。我真的很喜欢这个解决方案,尽管我花了一些时间才掌握它(我对答案投了赞成票)。与此同时,我发现它使代码更难阅读/理解,因此更难维护。目前,除了小的个人代码片段,我不会在任何事情中使用该解决方案。 |