C++ 如何将特性作为模板结构的参数传递?
假设我有这样的东西C++ 如何将特性作为模板结构的参数传递?,c++,templates,struct,arguments,typetraits,C++,Templates,Struct,Arguments,Typetraits,假设我有这样的东西 template<typename T1, typename T2> struct my_struct { using type = typename T1<T2>::type; }; 模板 结构我的结构 { 使用type=typename T1::type; }; 在main函数中,我希望能够使用test=typename my_struct::type编写其中test将等于float,因为remove_const_t返回float 如何
template<typename T1, typename T2>
struct my_struct
{
using type = typename T1<T2>::type;
};
模板
结构我的结构
{
使用type=typename T1::type;
};
在main函数中,我希望能够使用test=typename my_struct::type编写代码>其中test将等于float,因为remove_const_t
返回float
如何实现这一点?您需要模板参数
语法将是:
template<template <typename> class C, typename T>
struct my_struct
{
using type = typename C<T>::type;
};
模板
结构我的结构
{
使用type=typename C::type;
};
您需要一个模板,以便可以将模板传递到my_struct
。那看起来像
template<template<typename> typename T1, typename T2>
struct my_struct
{
using type = typename T1<T2>::type;
};
模板
结构我的结构
{
使用type=typename T1::type;
};
然后你会像这样使用它
using test = typename my_struct<is_integral, float>::type;
使用test=typename my_struct::type;
@disasterdrummer,应该可以工作。