------- Comment #4 from tbm at gcc dot gnu dot org 2007-03-31 18:09 ------- Testcase:
namespace std { template < class T > class allocator { public:typedef T value_type; typedef long unsigned int size_type; ~allocator () { } }; template < class charT > struct char_traits { }; template < class T, class Allocator > class vector { }; template < class Ch, class Tr = char_traits < Ch >, class A = allocator < Ch > >class basic_string; typedef basic_string < char >string; template < class Ch, class Tr, class A > class basic_string:public std::vector < Ch, A > { public:typedef Tr traits_type; typedef typename A::size_type size_type; static const size_type npos = (size_type) - 1; basic_string (const basic_string & str, size_type pos = 0, size_type n = npos, const A & al = A ()); }; } using namespace std; main () { try { } catch (string smess) { } } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31411