c++ - 从参数包中获取 typedef

标签 c++ templates c++11

我有一个这种形式的结构:

template <typename T>
struct X
{
    using value = T;
};

我将其中一个或多个传递给这样的模板函数:

template <typename... Ts>
void Func(Ts... ts);

我真正想要的是显式列出 X 并将函数参数类型设为 Tvalue。我该怎么做?

最佳答案

以下对我有用。

template <typename T>
struct X
{
    using value = T;
};

template <typename T>
struct Y
{
    using value = T*;
};

template <typename... Ts>
void Func(typename Ts::value... ts)
{
}

int main()
{
   Func<X<int>, Y<double>>(10, nullptr);
}

关于c++ - 从参数包中获取 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37450833/

相关文章:

c++ - 如何将管理器的引用传递给处理程序对象?

c++ - 将 float 转换为整数 : rounding in complex cases (ceil() and floor() not usable)

c++ - 查找二进制文件中所有出现的字节序列

c++ - C++ 中的 'override' 关键字是做什么用的?

c++ - 什么是无约束转换运算符模板,它有什么用?

c++ - 为什么禁止对位域的非常量引用?

c++ - 类型推导模板函数c++

c++ - 我如何使用模板化的 typedefs,它们是_in_一个类,来自类外部(例如,由另一个类),与 boost::graph 相关

c++ - C++模板:如何在仅输入1个函数的情况下使用2个类型名?

c++ - 什么是在 C++ 中重载构造函数的正确而优雅的方法