Originariamente inviato da gianvituzzi

il compilatore mi accettera una dichiarazione (e definizione) del genere...
No. Manca infatti il punto e virgola dopo la graffa di chiusura della classe ;-)

In ogni modo si evince che forse non ti è chiara l'utilità ed il senso dei namespace. Pensala semplicemente ad un modo formale per evitare conflitti tra nomi, che ad esempio in C si affronta in modo arbitrario applicando prefissi agli identificatori:

Ad esempio in C essendo il mio acronimo IG:
codice:
int IGIperSort (...);
in C++:
codice:
namespace ig{
	int IperSort (...);
}
e può essere comodo in fase di sviluppo per il versionamento test e convalidazione:

In C:
codice:
int IGIperSort_old (...);
int IGIperSort (...){
	int ret;
	....
	assert (IGIperSort_old () == ret);
	return ret;
}
in C++:
codice:
namespace ig_old{
	int IperSort (...);
}
namespace ig{
	int IperSort (...){
		int ret;
		....
		assert (ig_old:: IperSort () == ret);
		return ret;
	}
}