2008/11/6 Ryan Gallagher <ryan.gallagher@gmail.com>
If you really don't want to qualify the names each place they're used then try
just adding "using std::tr1::shared_ptr;" after all these locations where you
already do "using namespace *".  If I recall correctly, the using declaration
will override the names from the using directives thus disambiguating it.

Unfortunately using declaration won't override using directive.

Roman Perepelitsa.