| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- // Filename: cppClassTemplateParameter.cxx
- // Created by: drose (28Oct99)
- //
- ////////////////////////////////////////////////////////////////////
- //
- // PANDA 3D SOFTWARE
- // Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved
- //
- // All use of this software is subject to the terms of the Panda 3d
- // Software license. You should have received a copy of this license
- // along with this source code; you will also find a current copy of
- // the license at http://www.panda3d.org/license.txt .
- //
- // To contact the maintainers of this program write to
- // [email protected] .
- //
- ////////////////////////////////////////////////////////////////////
- #include "cppClassTemplateParameter.h"
- #include "cppIdentifier.h"
- ////////////////////////////////////////////////////////////////////
- // Function: CPPClassTemplateParameter::Constructor
- // Access: Public
- // Description:
- ////////////////////////////////////////////////////////////////////
- CPPClassTemplateParameter::
- CPPClassTemplateParameter(CPPIdentifier *ident, CPPType *default_type) :
- CPPType(CPPFile()),
- _ident(ident),
- _default_type(default_type)
- {
- }
- ////////////////////////////////////////////////////////////////////
- // Function: CPPClassTemplateParameter::is_fully_specified
- // Access: Public, Virtual
- // Description: Returns true if this declaration is an actual,
- // factual declaration, or false if some part of the
- // declaration depends on a template parameter which has
- // not yet been instantiated.
- ////////////////////////////////////////////////////////////////////
- bool CPPClassTemplateParameter::
- is_fully_specified() const {
- return false;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: CPPClassTemplateParameter::output
- // Access: Public, Virtual
- // Description:
- ////////////////////////////////////////////////////////////////////
- void CPPClassTemplateParameter::
- output(ostream &out, int indent_level, CPPScope *scope, bool complete) const {
- if (complete) {
- out << "class ";
- _ident->output(out, scope);
- if (_default_type) {
- out << " = ";
- _default_type->output(out, indent_level, scope, false);
- }
- } else {
- _ident->output(out, scope);
- }
- }
- ////////////////////////////////////////////////////////////////////
- // Function: CPPClassTemplateParameter::get_subtype
- // Access: Public, Virtual
- // Description:
- ////////////////////////////////////////////////////////////////////
- CPPDeclaration::SubType CPPClassTemplateParameter::
- get_subtype() const {
- return ST_class_template_parameter;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: CPPClassTemplateParameter::as_classTemplateParameter
- // Access: Public, Virtual
- // Description:
- ////////////////////////////////////////////////////////////////////
- CPPClassTemplateParameter *CPPClassTemplateParameter::
- as_class_template_parameter() {
- return this;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: CPPClassTemplateParameter::is_equal
- // Access: Protected, Virtual
- // Description: Called by CPPDeclaration() to determine whether this type is
- // equivalent to another type of the same type.
- ////////////////////////////////////////////////////////////////////
- bool CPPClassTemplateParameter::
- is_equal(const CPPDeclaration *other) const {
- const CPPClassTemplateParameter *ot = ((CPPDeclaration *)other)->as_class_template_parameter();
- assert(ot != NULL);
- if (_default_type != ot->_default_type) {
- return false;
- }
- return *_ident == *ot->_ident;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: CPPClassTemplateParameter::is_less
- // Access: Protected, Virtual
- // Description: Called by CPPDeclaration() to determine whether this type
- // should be ordered before another type of the same
- // type, in an arbitrary but fixed ordering.
- ////////////////////////////////////////////////////////////////////
- bool CPPClassTemplateParameter::
- is_less(const CPPDeclaration *other) const {
- const CPPClassTemplateParameter *ot = ((CPPDeclaration *)other)->as_class_template_parameter();
- assert(ot != NULL);
- if (_default_type != ot->_default_type) {
- return _default_type < ot->_default_type;
- }
- return *_ident < *ot->_ident;
- }
|