...
Table of Content Zone | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
AttributeNode describing an "attribute" as it appeared in the source. For example:
Node describing the arguments of an attribute. For example:
Attribute Group
If the argument of an attribute is an expression that is evaluated to a constant, the value of the attribute is that constant converted to a stringNode describing an attribute group. For example:
If the argument of an attribute is a type name, the attribute value is the full name of that type. For example:
Attribute GroupNode describing an attribute group. For example:
|
...
Table of Content Zone | ||||||
---|---|---|---|---|---|---|
| ||||||
Integer ConstantConstant integer expression. For example:
Real ConstantConstant expression that is a real number. For example: String ConstantConstant string expression. For example:
Template Parameter ConstantA constant template parameter in template class declaration. For example:
bool ConstantA constant value of true or false. enum ConstantAn enum identifier declared in body of enum declaration. For example:
nullptr constantA pointer literal of type std::nullptr_t. ExampleFor example:
|
Declarations
Macros that expand to constant expression of type const float _Complex, with the value of the imaginary unit. For example:
|
Declarations
Nodes Nodes representing various declarations in user code.
...
Table of Content Zone | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AssignmentIncludes all expression nodes used for assignment. ++aPreincrement expression. For example:
--aPre-decrement expression. For example:
a%=bMod-equals operator expression. For example:
a&=bBitwise-and-equals operator expression. For example:
a*=bMultiply-equals operator expression. For example:
a++Post increment expression. For example:
a+=bPlus-equals operator expression. For example:
a--Post decrement expression. For example:
a-=bMinus-equals operator expression. For example:
a/=bDivide-equals operator expression. For example:
a<<=bLeft-shift-equals operator expression. For example:
a=bAssignment operator expression. For example:
a>>=bRight-shift-equals operator expression. For example:
a^=bBitwise-xor-equals operator expression. For example:
a|=bBitwise-or-equals operator expression. For example:
BitwiseExpressions involving non-assignment bitwise operators. a&bBitwise 'and' expression. For example:
a^bBitwise XOR expression. For example:
a|bBitwise 'or' expression. For example:
~aBitwise 'not' expression. For example:
ComparisonExpressions that compare values. a!=bNot-equal operator expression. For example:
a<=b'Less than or equals' expression. For example:
a<b'Less than' expression. For example:
a==bEquality operator expression. For example:
a>=b'Greater than or equals' expression. For example:
a>b'Greater than' expression. For example:
LogicalComparison expressions involving logical operators. !aLogical 'not' expression. For example:
a&&bLogical 'and' expression. For example:
a||bLogical 'or' expression. For example:
MiscellaneousMiscellaneous expressions that don't fit in other categories. &aAddress of expression. For example:
*aDereference expression. For example:
a->bDereference operator expression. For example:
Cast
Alignment of type (
CastExpression that casts from one Expression that casts from one type to another. For example:
A generic association in a generic selection. For example:
A C11 generic selection expression. For example:
GNU Statement ExpressionA compound statement enclosed in parentheses that may appear as an expression in GNU C. For example:
Initializer ListExpression containing initializations, used in member functions. For example:
OverloadedAn expression using an overloaded operator. For example:
LabelLabel in goto statement. For example:
a(b)Function call expression. For example:
a,bCompound statement list. For example:
a->*bArrow-star expression used in pointers to member functions. For example:
a.*bDot-star expression used in pointers to member functions. For example:
a.bDot operator expression. For example:
a::bObsolete. Formerly used to represent scope reference expressions. Use ScopePrefix instead. a?b:cTernary operator expression. For example:
a[b]Array reference. For example:
asmInlined assembly expression. For example:
deleteDelete operator expression. For example:
ellipses (...)Ellipses expression used for catch parameters. For example:
newNew operator expression. For example:
sizeofSizeof operator expression. For example:
throwThrow operator expression. For example:
typeidTypeid operator expression used for RTTI. For example:
noexceptNoexcept operator. For example:
Vacuous destructor callExplicit destructor call for simple types or classes that do not have a type. For simple types, this represents a pseudo-destructor call. For example:
LambdaLambda expression. For example:
NumericalNumerical expressions that are not assignments. +aPositive signed expression. For example:
-aNegative signed expression. For example:
a%bModulo expression. For example:
a*bMultiplication expression. For example:
a+bAddition expression. For example:
a-bSubtraction expression. For example:
a/bDivision expression. For example:
a<<bLeft-shift expression. For example:
a>>bRight-shift expression. For example:
|
...
Table of Content Zone | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||
ComplexNon-primitive types. This category contains the following types: ArrayArray type. For example:
BuiltinNon-primitive type builtin for a given compiler. ClassUser-defined class type. For example:
decltype Anchor | decltype
|
Code Block |
---|
int i; decltype(i) k; // k is Variable of Type Decltype to Type int. |
Enum
User-defined enum type. For example:
enum E { }; //Enum type
Function
Function type. Used for function pointers. For example:
Code Block |
---|
void foo(void (*ptr)(int)) { // ptr is Pointer of Type Function ptr(3); } |
Reference
Reference type. Used for passing by reference. For example:
Code Block |
---|
void func(int &i) { // i is Parameter of Type Reference to Type int i = 3; } |
struct
Struct type. For example:
struct Foo { }; // struct
Template Parameter
A template parameter in template class declaration. For example:
template <typename T> class Temp{}; // Template Parameter: T
Typedef
Typedef type. For example:
Code Block |
---|
typedef int INT; INT x; // x is Variable of Type Typedef to Type int. |
Union
Union type. For example":
Code Block |
---|
union MyUnion { // union int x; char *y; }; |
Primitive
All primitive types. This category contains the following types:
bool
Primitive type bool. For example:
bool b; // b is Variable of Type bool
char
Primitive type char. For example:
char c; // c is Variable of Type char
double
Primitive type double. For example:
double d; // d is Variable of Type double
Anchor | ||||
---|---|---|---|---|
|
Type double _Complex. For example:
Code Block |
---|
double _Complex fd; // fd is Variable |
of Type double _Complex |
float
Primitive type float. For example:
float f; // f is Variable of Type float
Anchor | ||||
---|---|---|---|---|
|
Type float _Complex
float
Primitive type float. For example:
Code Block |
---|
float |
_Complex fc; // |
fc is Variable of Type float _Complex |
int
Primitive type int. For example:
int i; // i is Variable of Type int
long
Primitive type long. For example:
long x; // x is Variable of Type long
long double
Primitive type long double. For example:
long double d; // d is Variable of Type long double
Anchor | ||||
---|---|---|---|---|
|
Type long double _Complex. For example:
Code Block |
---|
long double _Complex fd; // fd is Variable of Type long double _Complex |
pointer
Pointer type. For example:
Code Block |
---|
char * name; // name is Variable of Type pointer to type char. |
short
Primitive type short. For example:
short x; // x is Variable of Type short
void
Primitive type void. Used for void pointers. For example:
Code Block |
---|
void * p; // p is Variable of Type pointer to type void. |
wchar_t
Primitive type wchar_t. For example:
wchar_t c; // c is Variable of Type wchar_t
std::nullptr_t
The type of pointer literal. Example:
decltype(nullptr) t; // Variable variable of std::nullptr_t Typetype