Overview Class

(CPlusPlus::Overview)

The Overview class converts a FullySpecifiedType and/or any qualified name to its string representation. More...

Header: #include <Overview>

Public Types

enum StarBindFlag { BindToIdentifier, BindToTypeName, BindToLeftSpecifier, BindToRightSpecifier }
flags StarBindFlags

Public Functions

Overview()
QString prettyName(const Name *name) const
QString prettyName(const QList<const Name *> &fullyQualifiedName) const
QString prettyType(const FullySpecifiedType &type, const Name *name = 0) const
QString prettyType(const FullySpecifiedType &type, const QString &name) const
QString operator()(const Name *name) const
QString operator()(const QList<const Name *> &fullyQualifiedName) const
QString operator()(const FullySpecifiedType &type, const Name *name = 0) const

Detailed Description

The Overview class converts a FullySpecifiedType and/or any qualified name to its string representation.

The public data members (except the ones starting with marked) determine what exactly and how to print.

You can get the start and end position of a function argument in the resulting string. Set markedArgument to the desired argument. After processing, markedArgumentBegin and markedArgumentEnd will contain the positions.

Member Type Documentation

enum Overview::StarBindFlag
flags Overview::StarBindFlags

The StarBindFlag enum describes how the '*' and '&' in pointers/references should be bound in the string representation.

This also applies to rvalue references ('&&'), but not to pointers to functions or arrays, because it seems to be quite uncommon to use spaces in them. For example:


  void (*p)()
  void (*p)[]

See the examples below. These assume that exactly one flag is set. That is, it may look different with flag combinations.

ConstantValueDescription
CPlusPlus::Overview::BindToIdentifier0x1e.g. "char *foo", but not "char * foo"
CPlusPlus::Overview::BindToTypeName0x2e.g. "char*", but not "char *"
CPlusPlus::Overview::BindToLeftSpecifier0x4e.g. "char * const* const", but not "char * const * const"
CPlusPlus::Overview::BindToRightSpecifier0x8e.g. "char *const", but not "char * const"

The StarBindFlags type is a typedef for QFlags<StarBindFlag>. It stores an OR combination of StarBindFlag values.

Member Function Documentation

Overview::Overview()

Default constructs an instance of Overview.

QString Overview::prettyName(const Name *name) const

QString Overview::prettyName(const QList<const Name *> &fullyQualifiedName) const

QString Overview::prettyType(const FullySpecifiedType &type, const Name *name = 0) const

QString Overview::prettyType(const FullySpecifiedType &type, const QString &name) const

QString Overview::operator()(const Name *name) const

QString Overview::operator()(const QList<const Name *> &fullyQualifiedName) const

QString Overview::operator()(const FullySpecifiedType &type, const Name *name = 0) const