code: def is_elaborated(type_):
      
      nake_type = remove_alias(type_)
      if isinstance(nake_type, cpptypes.elaborated_t):
          return True
      elif isinstance(nake_type, cpptypes.reference_t):
          return is_elaborated(nake_type.base)
      elif isinstance(nake_type, cpptypes.pointer_t):
          return is_elaborated(nake_type.base)
      elif isinstance(nake_type, cpptypes.volatile_t):
          return is_elaborated(nake_type.base)
      elif isinstance(nake_type, cpptypes.const_t):
          return is_elaborated(nake_type.base)
      return False
docs: returns True, if type represents C++ elaborated type, False otherwise