Tout en regardant la documentation pour std::swap
,, je vois beaucoup de spécialisations.
Il ressemble à tous les conteneur STL, ainsi que de nombreuses autres mst structures spécialisées de swap.
J'ai pensé avec l'aide de gabarits, nous n'aurions pas besoin de tous ces spécialisations?
Par exemple,
Si j'écris mes propres pair
il fonctionne correctement avec l'basées sur des modèles de version:
template<class T1,class T2>
struct my_pair{
T1 t1;
T2 t2;
};
int main() {
my_pair<int,char> x{1,'a'};
my_pair<int,char> y{2,'b'};
std::swap(x,y);
}
Donc, ce qu'il est obtenu à partir spécialisée std::pair
?
template< class T1, class T2 >
void swap( pair<T1,T2>& lhs, pair<T1,T2>& rhs );
Je suis aussi de gauche demandais si je devrais écrire mes propres spécialisations de classes personnalisées,
ou tout simplement en s'appuyant sur la version du modèle.