C++ typedef 到可变参数模板参数

标签 c++ templates typedef variadic

我想输入一个可变参数模板参数,如所附代码所示。有可能实现吗?

template <typename... T>
class Test
{
public:
    typedef T Arg;
};

template <typename T>
class X
{
public:
    X(T::Arg arg);
};

最佳答案

您不能将包分配给非包。不过,您可以将其放入 std::tuple 中。

template <typename... T>
class Test
{
public:
    typedef std::tuple< T ... > Arg;
};

随后从 Arg 获取带有参数列表 T ... 的函数需要更多工作,我不建议将其作为设计模式。最好以其他方式耦合 class TestX::X

关于C++ typedef 到可变参数模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22249386/

相关文章:

c++ - 可以访问在类声明中声明的 typedef 吗?

c++ - 为什么 C++ 中的类型别名在其语法中使用 'using' 而不是 'typedef'?

C++ 为什么这行得通

c++ - 在 Visual Studio C++ 6.0 中使用模板函数

c++ - 为什么返回类型中需要 typename ? C++

c++ - std::sort() 的自定义元组比较器

c++ - 为什么要创建 GObject 系统?

c++ - 变量可以调用私有(private)函数吗?

mysql - 模板 MySQL 在 Zabbix 中没有得到结果

.net - 不能在另一个项目的 dll 中使用一个类的 typedef