Usual template structs can be specialized, e.g.,
template<typename T>
struct X{};
template<>
struct X<int>{};
C++11 gave us the new cool using
syntax for expressing template typedefs:
template<typename T>
using YetAnotherVector = std::vector<T>
Is there a way to define a template specialization for these using constructs similar to specializations for struct templates? I tried the following:
template<>
using YetAnotherVector<int> = AFancyIntVector;
but it yielded a compile error. Is this possible somehow?
No.
But you can define the alias as:
template<typename T>
using YetAnotherVector = typename std::conditional<
std::is_same<T,int>::value,
AFancyIntVector,
std::vector<T>
>::type;
Hope that helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With