#include <cppFunctionGroup.h>
Inheritance diagram for CPPFunctionGroup:
Public Types | |
typedef vector< CPPInstance * > | Instances |
typedef map< CPPDeclaration *, CPPDeclaration * > | SubstDecl |
typedef set< CPPDeclaration * > | Instantiations |
enum | SubType { ST_instance, ST_typedef, ST_type_declaration, ST_expression, ST_type, ST_namespace, ST_using, ST_simple, ST_pointer, ST_reference, ST_array, ST_const, ST_function, ST_function_group, ST_extension, ST_struct, ST_enum, ST_class_template_parameter, ST_tbd, ST_type_proxy } |
Public Member Functions | |
CPPFunctionGroup (const string &name) | |
~CPPFunctionGroup () | |
CPPType * | get_return_type () const |
If all the functions that share this name have the same return type, returns that type. | |
virtual void | output (ostream &out, int indent_level, CPPScope *scope, bool complete) const |
virtual SubType | get_subtype () const |
virtual CPPFunctionGroup * | as_function_group () |
bool | operator== (const CPPDeclaration &other) const |
bool | operator!= (const CPPDeclaration &other) const |
bool | operator< (const CPPDeclaration &other) const |
bool | is_template () const |
Returns true if this is a template declaration of some kind: a template function or a template class, typically. | |
CPPTemplateScope * | get_template_scope () const |
If is_template(), above, returns true, this returns the CPPTemplateScope in which this particular template declaration is defined. | |
virtual bool | is_fully_specified () const |
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. | |
virtual CPPDeclaration * | instantiate (const CPPTemplateParameterList *actual_params, CPPScope *current_scope, CPPScope *global_scope, CPPPreprocessor *error_sink=NULL) const |
virtual CPPDeclaration * | substitute_decl (SubstDecl &subst, CPPScope *current_scope, CPPScope *global_scope) |
virtual CPPInstance * | as_instance () |
virtual CPPClassTemplateParameter * | as_class_template_parameter () |
virtual CPPTypedef * | as_typedef () |
virtual CPPTypeDeclaration * | as_type_declaration () |
virtual CPPExpression * | as_expression () |
virtual CPPType * | as_type () |
virtual CPPNamespace * | as_namespace () |
virtual CPPUsing * | as_using () |
virtual CPPSimpleType * | as_simple_type () |
virtual CPPPointerType * | as_pointer_type () |
virtual CPPReferenceType * | as_reference_type () |
virtual CPPArrayType * | as_array_type () |
virtual CPPConstType * | as_const_type () |
virtual CPPFunctionType * | as_function_type () |
virtual CPPExtensionType * | as_extension_type () |
virtual CPPStructType * | as_struct_type () |
virtual CPPEnumType * | as_enum_type () |
virtual CPPTBDType * | as_tbd_type () |
virtual CPPTypeProxy * | as_type_proxy () |
Public Attributes | |
Instances | _instances |
string | _name |
Instantiations | _instantiations |
CPPVisibility | _vis |
CPPTemplateScope * | _template_scope |
CPPFile | _file |
CPPCommentBlock * | _leading_comment |
Protected Member Functions | |
virtual bool | is_equal (const CPPDeclaration *other) const |
Called by CPPDeclaration to determine whether this type is equivalent to another type of the same type. | |
virtual bool | is_less (const CPPDeclaration *other) const |
Called by CPPDeclaration to determine whether this type should be ordered before another type of the same type, in an arbitrary but fixed ordering. |
It's handy for storing in the CPPScope, so that CPPScope::find_symbol() can return a single pointer to indicate all of the functions that may share a given name.
Definition at line 48 of file cppFunctionGroup.h.
|
Definition at line 61 of file cppFunctionGroup.h. |
|
Reimplemented in CPPInstance. Definition at line 118 of file cppDeclaration.h. |
|
Definition at line 113 of file cppDeclaration.h. Referenced by CPPScope::is_fully_specified(). |
|
Definition at line 71 of file cppDeclaration.h. Referenced by CPPUsing::output(), output(), CPPClassTemplateParameter::output(), and CPPFunctionType::output_instance(). |
|
Definition at line 36 of file cppFunctionGroup.cxx. |
|
Definition at line 50 of file cppFunctionGroup.cxx. References _instances, CPPFunctionType::_return_type, CPPDeclaration::as_function_type(), and NULL. |
|
Reimplemented in CPPArrayType, and CPPTypeProxy. Definition at line 339 of file cppDeclaration.cxx. References NULL. Referenced by InterrogateBuilder::insert_param_list(). |
|
Reimplemented in CPPClassTemplateParameter. Definition at line 219 of file cppDeclaration.cxx. References NULL. |
|
|
Reimplemented in CPPEnumType, and CPPTypeProxy. Definition at line 411 of file cppDeclaration.cxx. Referenced by CPPTypeProxy::as_reference_type(). |
|
Reimplemented in CPPExpression. Definition at line 255 of file cppDeclaration.cxx. References NULL. |
|
Reimplemented in CPPExtensionType, and CPPTypeProxy. Definition at line 387 of file cppDeclaration.cxx. Referenced by TypeManager::is_simple(). |
|
Reimplemented from CPPDeclaration. Definition at line 128 of file cppFunctionGroup.cxx. |
|
Reimplemented in CPPFunctionType, and CPPTypeProxy. Definition at line 363 of file cppDeclaration.cxx. Referenced by CPPStructType::check_virtual(), CPPInstanceIdentifier::get_scope(), CPPInstance::get_simple_name(), InterrogateBuilder::in_noinclude(), TypeManager::is_const_pointer_to_base(), CPPPointerType::output(), TypeManager::unwrap(), TypeManager::wrap_const_reference(), and ~CPPFunctionGroup(). |
|
Reimplemented in CPPInstance. Definition at line 207 of file cppDeclaration.cxx. References NULL. Referenced by CPPExpression::CPPExpression(), and CPPTypedef::CPPTypedef(). |
|
Reimplemented in CPPNamespace. Definition at line 279 of file cppDeclaration.cxx. References NULL. |
|
Reimplemented in CPPPointerType, and CPPTypeProxy. Definition at line 315 of file cppDeclaration.cxx. References NULL. Referenced by InterrogateBuilder::insert_param_list(), TypeManager::is_const_ref_to_simple(), and CPPTypeProxy::output_instance(). |
|
Reimplemented in CPPReferenceType, and CPPTypeProxy. Definition at line 327 of file cppDeclaration.cxx. References NULL. Referenced by InterrogateBuilder::insert_param_list(), TypeManager::involves_unpublished(), TypeManager::is_const_ref_to_enum(), TypeManager::is_reference_count(), and CPPTypeProxy::output(). |
|
Reimplemented in CPPSimpleType, and CPPTypeProxy. Definition at line 303 of file cppDeclaration.cxx. References NULL. Referenced by TypeManager::is_basic_string_char(), TypeManager::is_char_pointer(), TypeManager::is_const_basic_string_char(), and TypeManager::is_const_simple(). |
|
Reimplemented in CPPStructType, and CPPTypeProxy. Definition at line 399 of file cppDeclaration.cxx. Referenced by CPPTypeProxy::as_pointer_type(), CPPScope::find_scope(), InterrogateBuilder::get_getter(), and TypeManager::wrap_const_pointer(). |
|
Reimplemented in CPPTBDType, and CPPTypeProxy. Definition at line 423 of file cppDeclaration.cxx. Referenced by CPPTypeProxy::as_array_type(). |
|
Reimplemented in CPPType, and CPPTypeProxy. Definition at line 267 of file cppDeclaration.cxx. References NULL. Referenced by CPPIdentifier::get_scope(), CPPTemplateParameterList::get_string(), CPPReferenceType::is_fully_specified(), CPPPointerType::is_fully_specified(), CPPConstType::is_fully_specified(), CPPArrayType::is_tbd(), and CPPScope::write(). |
|
Reimplemented in CPPTypeDeclaration. Definition at line 243 of file cppDeclaration.cxx. References NULL. |
|
Reimplemented in CPPTypeProxy. Definition at line 435 of file cppDeclaration.cxx. |
|
Reimplemented in CPPTypedef. Definition at line 231 of file cppDeclaration.cxx. Referenced by CPPTypedef::CPPTypedef(). |
|
Reimplemented in CPPUsing. Definition at line 291 of file cppDeclaration.cxx. |
|
If all the functions that share this name have the same return type, returns that type. Otherwise, if some functions have different return types, returns NULL. Definition at line 68 of file cppFunctionGroup.cxx. |
|
Implements CPPDeclaration. Definition at line 116 of file cppFunctionGroup.cxx. |
|
If is_template(), above, returns true, this returns the CPPTemplateScope in which this particular template declaration is defined. This scope includes the information about the template parameters. Definition at line 143 of file cppDeclaration.cxx. References NULL, and CPPPreprocessor::warning(). |
|
Reimplemented in CPPInstance, and CPPStructType. Definition at line 174 of file cppDeclaration.cxx. References NULL. |
|
Called by CPPDeclaration to determine whether this type is equivalent to another type of the same type.
Reimplemented in CPPArrayType, CPPClassTemplateParameter, CPPConstType, CPPExpression, CPPFunctionType, CPPPointerType, CPPReferenceType, CPPSimpleType, CPPStructType, and CPPTBDType. Definition at line 451 of file cppDeclaration.cxx. Referenced by CPPType::get_fully_scoped_name(), and CPPDeclaration::~CPPDeclaration(). |
|
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.
Reimplemented in CPPArrayType, CPPClassTemplateParameter, CPPConstType, CPPFunctionType, CPPInstance, CPPPointerType, CPPReferenceType, and CPPStructType. Definition at line 162 of file cppDeclaration.cxx. References NULL. Referenced by CPPConstType::CPPConstType(), CPPPointerType::CPPPointerType(), CPPReferenceType::CPPReferenceType(), CPPInstance::instantiate(), and CPPFunctionType::operator=(). |
|
Called by CPPDeclaration to determine whether this type should be ordered before another type of the same type, in an arbitrary but fixed ordering.
Reimplemented in CPPArrayType, CPPClassTemplateParameter, CPPConstType, CPPExpression, CPPFunctionType, CPPPointerType, CPPReferenceType, CPPSimpleType, CPPStructType, and CPPTBDType. Definition at line 468 of file cppDeclaration.cxx. |
|
Returns true if this is a template declaration of some kind: a template function or a template class, typically.
Definition at line 124 of file cppDeclaration.cxx. Referenced by InterrogateBuilder::remap_indices(), and InterrogateBuilder::scan_function(). |
|
Definition at line 92 of file cppDeclaration.cxx. |
|
Definition at line 104 of file cppDeclaration.cxx. References CPPDeclaration::_template_scope, and NULL. |
|
Definition at line 77 of file cppDeclaration.cxx. |
|
Implements CPPDeclaration. Definition at line 94 of file cppFunctionGroup.cxx. References CPPDeclaration::ST_function_group, and CPPDeclaration::SubType. |
|
Definition at line 191 of file cppDeclaration.cxx. Referenced by CPPReferenceType::is_fully_specified(), CPPPointerType::is_fully_specified(), CPPConstType::is_fully_specified(), CPPArrayType::is_tbd(), and CPPScope::write(). |
|
Definition at line 149 of file cppDeclaration.h. Referenced by InterrogateBuilder::remap_indices(), InterrogateBuilder::scan_function(), and CPPScope::write(). |
|
Definition at line 62 of file cppFunctionGroup.h. Referenced by CPPStructType::check_virtual(), InterrogateBuilder::in_ignoremember(), and ~CPPFunctionGroup(). |
|
Reimplemented in CPPInstance. Definition at line 119 of file cppDeclaration.h. |
|
Definition at line 150 of file cppDeclaration.h. Referenced by CPPDeclaration::CPPDeclaration(), and CPPScope::set_current_vis(). |
|
Definition at line 63 of file cppFunctionGroup.h. |
|
Definition at line 148 of file cppDeclaration.h. Referenced by CPPTemplateScope::add_declaration(), CPPTemplateScope::add_enum_value(), CPPTemplateScope::CPPTemplateScope(), and CPPDeclaration::operator<(). |
|
Definition at line 147 of file cppDeclaration.h. Referenced by CPPScope::get_local_name(), TypeManager::is_pointer_to_base(), InterrogateBuilder::remap_indices(), InterrogateBuilder::scan_function(), and TypeManager::wrap_const_reference(). |