4
我想按类型组专门化模板,也可以通过一些特定简单类型的额外定义来专门化模板。它是在C++ 11中并且可能提升1.60?下面的伪代码说明了我的意图:按类型组合的C++模板特化与基本类型相结合
template <typename T> // Universal definition
struct convert
{ ... }
template <> /* Definition for integral types like defined by std::type_traits */
struct convert<integral_types>
{ ... }
template <> /* Definition for floating point types like defined by type_traits */
struct convert<floating_types>
{ ... }
template <> /* Exception from integral types - specific definition */
struct convert<char>
{ ... }
,我认为这可以通过标签分配器来解决,但我不知道这是否是最好的解决办法。另一种选择是enable_if
,与is_integral
(以及类似的团体)合并,但简单char
类型是问题...
注:如果你只有C++ 11(因此定义了'std :: enable_if_t':'template using enable_if_t = typename std :: enable_if :: type;'' –