Suppose I have the following template:
template <typename T> union example {
T t;
constexpr example(const T & t) : t(t) {};
~example() {};
};
Because of the destructor, there example<T>will never be trivially destructible (and therefore will not be, say, a literal type). I would like to have a partial specialization, for example
template <typename T> union
example<std::enable_if_t<std::is_trivially_destructible<T>::value, T>> {
T t;
constexpr example(const T & t) : t(t) {};
};
so that example<T>it is trivially destructible when Tthere is, but, unfortunately, it gives me a (reasonable, retroactively) warning
warning: classification of a template template contains a template parameter that cannot be displayed; this partial specialization will never be used
So, is there a way to get what I want here?
source
share