L>Насколько это общепринятая практика? Я имею в виду:
L>
L>namespace std
L>{
L> template class string<...>;
L> template class vector<...>;
L>}
L>
Пространства имен были введены для решения проблемы конфликта имен. Поэтому это даже не общепринятая, а единственно возможная практика в условиях мультибиблиотечкой среды:
// mylib.h
namespace mylib
{
class foo{};
}
// yourlib.h
namespace yourlib
{
class foo{};
}
// main.cpp
#include "mylib.h"
#include "yourlib.h"
int main()
{
mylib::foo f1;
yourlib::foo f2;
...
}