从结构中获取所有可变参数模板类型,该结构是函数模板中的类型参数

问题描述 投票:1回答:1

这是一个最小的例子:

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>),但如何在外面做到?

c++ templates template-meta-programming typetraits
1个回答
2
投票

您可以插入一个解压缩参数的帮助器模板:

Pack
© www.soinside.com 2019 - 2024. All rights reserved.