C'è una differenza tra i seguenti approcci?Sintassi per modelli di funzioni specializzate
// approach 1
namespace std
{
template<>
void swap<Foo>(Foo& x, Foo& y) // note the <Foo>
{
x.swap(y);
}
}
// approach 2
namespace std
{
template<>
void swap(Foo& x, Foo& y)
{
x.swap(y);
}
}
ho stumpled su questo quando ho provato a specializzarsi swap per il mio tipo di stringa e ho notato che swap<::string>
non funziona, ma per un motivo completamente diverso :)
E che tipo ha il nome ':: string'? – Potatoswatter
Il mio tipo di stringa giocattolo nello spazio dei nomi globale. – fredoverflow