的非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