c++ - 了解可变参数模板
问题描述
尝试使用可变参数模板理解这段代码:
template <typename... T>
struct FooGroup;
template <typename... FooTypes, typename... BarTypes>
struct TEST<FooGroup<FooTypes...>, BarGroup<BarTypes...>>
我知道可变参数模板允许您传入未知类型的未知数量。然而,这让我很困惑。任何人都可以解释一下吗?
解决方案
这段代码
template <typename... T>
struct FooGroup;
声明FooGroup
为struct
接收类型模板参数的可变参数列表。
template <typename... FooTypes, typename... BarTypes>
struct TEST<FooGroup<FooTypes...>, BarGroup<BarTypes...>>
是模板专业化的一部分。
我想TEST
声明如下
template <typename, typename>
struct TEST;
所以接收两个模板类型参数。
和
template <typename... FooTypes, typename... BarTypes>
struct TEST<FooGroup<FooTypes...>, BarGroup<BarTypes...>>
如果TEST
第一个模板参数在表单中FooGroup<FooTypes...>
(其中FooTypes...
是模板参数的可变参数列表),并且第二个模板参数在表单BarGroup<BarTypes...>
中(我想BarGroup
几乎定义为FooGroup
并且BarTypes...
是模板的另一个可变参数列表,则声明部分特化参数)
推荐阅读
- electron - 在主进程和渲染器进程之间发送大数据的有效方法
- angular - 如何测试角度 - catchError 运算符'rxjs'
- android - 如何在 dataBinding 中为视图设置监听器功能(如 setOnClickListener)
- python - 为什么 Python 进度库会打印额外的字符
- xml - 带有列表框的多选下拉菜单
- c++ - 尝试制作自定义字符串类,但我不断收到 C2440 和 E0415 错误
- gdb - 使用 gdb 调试 xv6 内核 - 所选架构 i386 与报告的目标架构不兼容
- c# - 如何从公共静态无效中将值放入文本框中
- google-apps-script - 如何修复 DriveApp.getFiles() ... file.getName() 崩溃记录器(谷歌脚本 API)
- sql - 这个 JPA @Query 有什么问题?