Skip to content

[C++] 模板类的多个可变参数包解决方案 | Multiple Variadic Parameter Pack for Template Class #17

Open
@yangruihan

Description

@yangruihan

模板类的多个可变参数包解决方案

参考:

解决方案

可以使用std::tuple来进行包装

如下:

template <typename attribute_tuple, APITypes APIType,
          typename policy_tuple> class IShader;

template <AttributeType... Attributes, APITypes APIType,
          class... Policies>
class IShader<std::tuple<Attributes...>, APIType,
              std::tuple<Policies...>> : public Policies... {

// ...

};

可以按照下面的方式来使用模板类:

IShared<std::tuple<Attribute1, Attribute2>, APITypeFoo,
        std::tuple<Policy1, Policy2>> ishared_instance;

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions