关于C++学习可变参数模板的问题,如何解决?

今天学习了一下可变参数模板,但是发现其中使用逗号表达式打开参数包时,使用省略号的位置为什么在小括号后面,而不是在te参数包的后面

img

有用请你采纳:
在 C++ 中,省略号是一种语法,表示可变参数的概念。在模板中,省略号用于表示模板参数列表可以是任意数量的类型。所以,在可变参数模板中,省略号必须位于参数列表的后面,以标识其是可变的。

使用逗号表达式打开参数包时,要使用小括号将其包裹起来,以保证语法正确。因此,在这种情况下,省略号也必须在小括号的后面,而不是在参数包的后面。

最后,在 C++ 中,省略号的位置是有固定语法的,在可变参数模板中,必须位于参数列表的后面,并且在打开参数包时,需要在小括号的后面使用。
参考文献:https://blog.csdn.net/qq_43899283/article/details/124349972?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167515925616800182718686%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167515925616800182718686&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-124349972-null-null.142^v71^wechat,201^v4^add_ask&utm_term=c%2B%2B%E5%8F%AF%E5%8F%98%E5%8F%82%E6%95%B0&spm=1018.2226.3001.4449

可变参数的省略号需要加在逗号表达式外面,表示需要将逗号表达式展开。
建议您重点学一下下这个可变参数,尤其是通过逗号表达式展开参数包这个知识点。
https://blog.csdn.net/chenlong_cxy/article/details/126807356

这是因为可变参数模板使用逗号表达式打开参数包是为了传递多个模板实参给函数,省略号是指函数接收的是可变数量的实参,并不是指函数接收的是模板实参,所以省略号位置在小括号后面,表示在函数调用时,实参是不确定的。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^