Browse Source

interrogate: fix detection of special std types

rdb 7 years ago
parent
commit
c166daf0f3
1 changed files with 4 additions and 1 deletions
  1. 4 1
      dtool/src/interrogate/typeManager.cxx

+ 4 - 1
dtool/src/interrogate/typeManager.cxx

@@ -965,6 +965,7 @@ is_wstring(CPPType *type) {
 bool TypeManager::
 bool TypeManager::
 is_vector_unsigned_char(CPPType *type) {
 is_vector_unsigned_char(CPPType *type) {
   if (type->get_local_name(&parser) == "vector< unsigned char >" ||
   if (type->get_local_name(&parser) == "vector< unsigned char >" ||
+      type->get_local_name(&parser) == "std::vector< unsigned char >" ||
       type->get_local_name(&parser) == "pvector< unsigned char >") {
       type->get_local_name(&parser) == "pvector< unsigned char >") {
     return true;
     return true;
   }
   }
@@ -1804,7 +1805,9 @@ bool TypeManager::is_ostream(CPPType *type) {
     return is_ostream(type->as_const_type()->_wrapped_around);
     return is_ostream(type->as_const_type()->_wrapped_around);
 
 
   case CPPDeclaration::ST_struct:
   case CPPDeclaration::ST_struct:
-    return (type->get_local_name(&parser) == "ostream");
+    return (type->get_local_name(&parser) == "std::ostream" ||
+            type->get_local_name(&parser) == "ostream" ||
+            type->get_local_name(&parser) == "std::basic_ostream< char >");
 
 
   case CPPDeclaration::ST_typedef:
   case CPPDeclaration::ST_typedef:
     return is_ostream(type->as_typedef_type()->_type);
     return is_ostream(type->as_typedef_type()->_type);