的非const版本专营模板我有一个模板结构:与常量和另一个模板
template<typename T>
struct A {...};
,我想专注与另一模板类型B
。
但是,我想使这个专业化适用于B
和const B
版本。可能吗?
我已经尝试过这种做法:
template<typename T, typename Enable = void>
struct A {...};
template<typename T, typename U>
struct A<T, std::enable_if<std::is_same<T, B<U>>::value || std::is_same<T, const B<U>>::value, void>::type
{
...
}
但它无法编译,给我error: template parameters not deducible in partial specialization
是'B'类型还是模板类型? – Jarod42
只是一个想法发生了:你可以专注于'B'和'B const',在const版本中实现这个功能,并从那个派生另一个?如果这有效,你不需要处理sfinae tmp的东西。 – JorenHeit