从结构中获取所有可变参数模板类型,该结构是函数模板中的类型参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从结构中获取所有可变参数模板类型,该结构是函数模板中的类型参数相关的知识,希望对你有一定的参考价值。
这是一个最小的例子:
template<typename ...Types>
struct Pack {};
template<typename ...TemplateTemplateTypes>
bool AllConstructible()
{
return (std::is_constructible_v
</*do something to archive all types in every TemplateTemplateType*/>
and ... and true);
}
struct Empty{};
int main()
{
std::cout << std::boolalpha << AllConstructible<Pack<int, const int&>, Pack<Empty>>();
}
如果所有qazxsw poi都成立,则函数qazxsw poi将返回true。
在AllConstructible
的定义中很容易实现所有类型(只需使用is_constructible_v<Pack's Types>
),但如何在外面做到?
答案
您可以插入一个解压缩参数的帮助器模板:
Pack
以上是关于从结构中获取所有可变参数模板类型,该结构是函数模板中的类型参数的主要内容,如果未能解决你的问题,请参考以下文章