cppReferenceType.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Filename: cppReferenceType.h
  2. // Created by: drose (19Oct99)
  3. //
  4. ////////////////////////////////////////////////////////////////////
  5. #ifndef CPPREFERENCETYPE_H
  6. #define CPPREFERENCETYPE_H
  7. #include <dtoolbase.h>
  8. #include "cppType.h"
  9. ///////////////////////////////////////////////////////////////////
  10. // Class : CPPReferenceType
  11. // Description :
  12. ////////////////////////////////////////////////////////////////////
  13. class CPPReferenceType : public CPPType {
  14. public:
  15. CPPReferenceType(CPPType *pointing_at);
  16. CPPType *_pointing_at;
  17. virtual bool is_fully_specified() const;
  18. virtual CPPDeclaration *substitute_decl(SubstDecl &subst,
  19. CPPScope *current_scope,
  20. CPPScope *global_scope);
  21. virtual CPPType *resolve_type(CPPScope *current_scope,
  22. CPPScope *global_scope);
  23. virtual bool is_tbd() const;
  24. virtual bool is_equivalent(const CPPType &other) const;
  25. virtual void output(ostream &out, int indent_level, CPPScope *scope,
  26. bool complete) const;
  27. virtual void output_instance(ostream &out, int indent_level,
  28. CPPScope *scope,
  29. bool complete, const string &prename,
  30. const string &name) const;
  31. virtual SubType get_subtype() const;
  32. virtual CPPReferenceType *as_reference_type();
  33. protected:
  34. virtual bool is_equal(const CPPDeclaration *other) const;
  35. virtual bool is_less(const CPPDeclaration *other) const;
  36. };
  37. #endif