Czy jest możliwe warunkowe włączenie elementu danych o stałej lub stałej dla klasy szablonu na podstawie stałej argumentu szablonu? A może masz jakiś typedef warunkowy? Pomyślałem o używaniu std :: enable_if z std :: is_const, ale nie ma std :: is_not_const, którego mógłbym użyć.Czy można warunkowo włączyć element danych niestanowiący stałych/stałych klasy szablonu na podstawie stałej argumentu szablonu?
class A;
template <typename T>
class Test
{
A& m_a; // If T != const.
const A& m_a; // If T == const.
};
Pamiętaj, że zawsze T = A.
Być może na to pytanie można odpowiedzieć, ponieważ jest to powiązane. Czy mając jakieś T, byłoby błędem uzyskać "czysty typ" ze std :: remove_const nawet w przypadkach, gdy T jest już nie-const? – NFRCR
W porządku. 'remove_const' zwróci oryginalny typ, jeśli nie jest określony jako const. Ale zauważ, że 'remove_const' daje 'const T &', ponieważ usuwa tylko kwalifikator najwyższego poziomu. –
jrok