3
我願做類似如下(在C + + 11,C++ 14,不C++ 17):可以在模板化的typedef上使用模板專門化嗎?
template <class T>
using partner = void;
template<>
using partner<A> = X;
template<>
using partner<B> = Y;
template<>
using partner<C> = Z;
但我得到一個編譯錯誤---
error: expected unqualified-id before ‘using’
---在第一個模板專業化。
這樣的事情可能嗎? (我已經知道我可以使用一個模板類,它裏面有一個using
聲明,我希望直接使用using
沒有類包裝器,因爲它更簡單,更優雅,如果還有其他簡單優雅的解決方案,請分享!
'的std :: conditional_t'(用'STD: :is_same')是一種選擇,但我不會說它更優雅。 – Jarod42
你不能做這樣的事情的一個原因是別名模板被推斷出上下文例如在另一個模板參數中使用的情況下 –