是否有可能专门化模板来抽象此行为(使用逻辑或特殊化类型) 使用另一个助手类。
当我将int或char传递给同一个类时要专门化。
template<typename K>
struct test
{
};
template<>
struct test<int or char>
{
};
感谢。
CB
答案 0 :(得分:2)
您可以使用C ++ 11类型特征(或者,如果您还没有C ++ 11,请使用Boost中的类型特征):
#include <type_traits>
template <typename K, bool special = std::is_same<K, char>::value || std::is_same<K, int>::value>
struct A
{
// general case
};
template <typename K>
srtuct A<K, true>
{
//int-or-char case
};
答案 1 :(得分:0)
你的问题太模糊了,但我觉得你这样谈论smth?
template <typename T>
struct A
{
//...
}
template<B>
struct A
{
//...
}
在这种情况下,您指定模板结构应如何表现某些特定类型的模板
答案 2 :(得分:0)
C ++支持部分特化。解决问题的最简单方法(我认为这是你的问题)是为int或char部分专门化struct test,ala:
template <typename T> struct test
{
// For arbitrary type T...
};
template <>
struct test<int>
{
// definition for when T = int
};
template <>
struct test<char>
{
// definition for when T = char
};