.. _codeql-library-for-cpp: CodeQL library for C and C++ ============================ When analyzing C or C++ code, you can use the large collection of classes in the CodeQL library for C and C++. About the CodeQL library for C and C++ -------------------------------------- There is an extensive library for analyzing CodeQL databases extracted from C/C++ projects. The classes in this library present the data from a database in an object-oriented form and provide abstractions and predicates to help you with common analysis tasks. The library is implemented as a set of QL modules, that is, files with the extension ``.qll``. The module ``cpp.qll`` imports all the core C/C++ library modules, so you can include the complete library by beginning your query with: .. code-block:: ql import cpp The rest of this topic summarizes the available CodeQL classes and corresponding C/C++ constructs. Commonly-used library classes ------------------------------ The most commonly used standard library classes are listed below. The listing is broken down by functionality. Each library class is annotated with a C/C++ construct it corresponds to. Declaration classes ~~~~~~~~~~~~~~~~~~~ This table lists Declaration_ classes representing C/C++ declarations. +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | Example syntax | CodeQL class | Remarks | +===============================================================================+======================================+=====================================+ | ``int`` *var* ``;`` | GlobalVariable_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``namespace`` *N* ``{`` ... ``float`` *var* ``;`` ... ``}`` | NamespaceVariable_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``int`` *func* ``( void ) {`` ... ``float`` *var* ``;`` ... ``}`` | LocalVariable_ | See also Initializer_ | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``class`` *C* ``{`` ... ``int`` *var* ``;`` ... ``}`` | MemberVariable_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``int`` *func* ``(const char`` *param* ``);`` | Function_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``template < typename`` *T* ``>`` | TemplateFunction_ | | | | ``void`` *func* ``(`` *T* ``param);`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``int`` *func* ``(const char*`` *format* ``, ...)`` | FormattingFunction_ | | | | ``{`` ... ``}`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | *func* ``< int, float > (`` ... ``);`` | FunctionTemplateInstantiation_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``template < typename`` *T* ``>`` | FunctionTemplateSpecialization_ | | | | *func* ``< int,`` *T* ``> (`` ... ``) {`` ... ``}`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``class`` *C* ``{`` ... | MemberFunction_ | | | | ``int`` *func* ``( float`` *param* ``);`` ... ``};`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``class`` *C* ``{`` ... | ConstMemberFunction_ | | | | ``int`` *func* ``( float`` *param* ``) const;`` ... ``};`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``class`` *C* ``{`` ... ``virtual int`` *func* ``(`` ... ``) {`` ... ``} };`` | VirtualFunction_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``class`` *C* ``{`` ... *C* ``(`` ... ``) {`` ... ``}`` ... ``};`` | Constructor_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``C::operator float () const;`` | ConversionOperator_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``class`` *C* ``{`` ... ``~`` *C* ``( void ) {`` ... ``}`` ... ``};`` | Destructor_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``class`` *C* ``{`` ... | ConversionConstructor_ | | | | *C* ``( const`` *D* ``&`` *d* ``) {`` ... ``}`` ... ``};`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | *C* ``&`` *C* ``:: operator= (const`` *C* ``& );`` | CopyAssignmentOperator_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | *C* ``&`` *C* ``:: operator= (`` *C* ``&& );`` | MoveAssignmentOperator_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | *C* ``::`` *C* ``(const`` *C* ``& );`` | CopyConstructor_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | *C* ``::`` *C* ``(`` *C* ``&& );`` | MoveConstructor_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | *C* ``::`` *C* ``(void);`` | NoArgConstructor_ | Default constructor | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``enum`` *en* ``{`` *val1* ``,`` *val2* ... ``}`` | EnumConstant_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``friend void`` *func* ``( int );`` | FriendDecl_ | | | | ``friend class`` *B* ``;`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``int`` *func* ``( void ) {`` ... | LocalEnum_ | | | | ``enum`` *en* ``{`` *val1* ``,`` *val2* ... ``};`` ... ``}`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``class`` *C* ``{`` ... | NestedEnum_ | | | | ``enum`` *en* ``{`` *val1* ``,`` *val2* ... ``}`` ... ``}`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``enum class`` *en* ``: short {`` *val1* ``,`` *val2* ... ``}`` | ScopedEnum_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``class`` *C* ``{`` ... | AbstractClass_ | | | | ``virtual void`` *func* ``( int ) = 0;`` ... ``};`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``template < int , float > class`` *C* ``{`` ... ``};`` | ClassTemplateInstantiation_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``template < > class`` *C* ``<`` Type_ ``> {`` ... ``};`` | FullClassTemplateSpecialization_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``template < typename`` *T* ``>`` | PartialClassTemplateSpecialization_ | | | | ``class`` *C* ``<`` *T* ``,`` *5* ``> {`` ... ``};`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``int`` *func* ``( void ) {`` ... ``class`` *C* ``{`` ... ``};`` ... ``}`` | LocalClass_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``class`` *C* ``{`` ... ``class`` *D* ``{`` ... ``};`` ... ``};`` | NestedClass_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``class`` *C* ``{`` | Class_ | | | | Type_ *var* ``;`` | | | | | Type_ *func* ``(`` Parameter_... ``) {`` ... ``}``... ``};`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``struct`` *S* ``{`` ... | | Struct_ | | | | Type_ *var* ``;`` | | Class_ | | | | Type_ *func* ``(`` Parameter_... ``) {`` ... ``}``... ``};`` | | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``union`` *U* ``{`` | | Union_ | | | | Type_ *var1* ``;`` | | Struct_ | | | | Type_ *var2* ``;`` ... ``};`` | | Class_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``template < typename`` *T* ``>`` | ProxyClass_ | Appears only in *uninstantiated* | | | ``struct`` *C* ``:`` *T* ``{`` ... ``};`` | | templates | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``int`` *func* ``( void ) {`` ... | LocalStruct_ | | | | ``struct`` *S* ``{`` ... ``};`` ... ``}`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``class`` *C* ``{`` ... | NestedStruct_ | | | | ``struct`` *S* ``{`` ... ``};`` ... ``};`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``int *`` *func* ``( void ) {`` ... ``union`` *U* ``{`` ... ``};`` ... ``}`` | LocalUnion_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``class`` *C* ``{`` ... ``union`` *U* ``{`` ... ``};`` ... ``};`` | NestedUnion_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``typedef int`` *T* ``;`` | TypedefType_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``int`` *func* ``( void ) {`` ... | LocalTypedefType_ | | | | ``typedef int`` *T* ``;`` ... ``}`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``class`` *C* ``{`` ... | NestedTypedefType_ | | | | ``typedef int`` *T* ``;`` ... ``};`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``class`` *V* ``:`` ... ``public`` *B* ... ``{`` ... ``};`` | ClassDerivation_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``class`` *V* ``:`` ... ``virtual`` *B* ... ``{`` ... ``};`` | VirtualClassDerivation_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | | ``template < typename`` *T* ``>`` | TemplateClass_ | | | | ``class`` *C* ``{`` ... ``};`` | | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``int`` *foo* ``(`` Type_ *param1* ``,`` Type_ *param2* ... ``);`` | Parameter_ | | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ | ``template `` *T* *t* ``;`` | TemplateVariable_ | Since C++14 | +-------------------------------------------------------------------------------+--------------------------------------+-------------------------------------+ Statement classes ~~~~~~~~~~~~~~~~~ This table lists subclasses of Stmt_ representing C/C++ statements. +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | Example syntax | CodeQL class | Remarks | +==========================================================+================================+===================================================+ | ``__asm__ ("`` *movb %bh, (%eax)* ``");`` | AsmStmt_ | Specific to a given CPU instruction set | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``{`` Stmt_... ``}`` | BlockStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``catch (`` Parameter_ ``)`` BlockStmt_ | CatchBlock_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``catch ( ... )`` BlockStmt_ | CatchAnyBlock_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``goto *`` *labelptr* ``;`` | ComputedGotoStmt_ | GNU extension; use with LabelLiteral_ | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | Type_ *i* ``,`` *j* ``;`` | DeclStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``if (`` Expr_ ``)`` Stmt_ ``else`` Stmt_ | IfStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``switch (`` Expr_ ``) {`` SwitchCase_... ``}`` | SwitchStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``do`` Stmt_ ``while (`` Expr_ ``)`` | DoStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``for (`` DeclStmt_ ``;`` Expr_ ``;`` Expr_ ``)`` Stmt_ | ForStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``for (`` DeclStmt_ ``:`` Expr_ ``)`` Stmt_ | RangeBasedForStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``while (`` Expr_ ``)`` Stmt_ | WhileStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | Expr_ ``;`` | ExprStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``__try {`` ... ``} __except (`` Expr_ ``) {`` ... ``}`` | MicrosoftTryExceptStmt_ | Structured exception handling (SEH) under Windows | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``__try {`` ... ``} __finally {`` ... ``}`` | MicrosoftTryFinallyStmt_ | Structured exception handling (SEH) under Windows | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``return`` Expr_ ``;`` | ReturnStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``case`` Expr_ ``:`` | SwitchCase_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``try {`` Stmt_... ``}`` CatchBlock_... CatchAnyBlock_ | TryStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | | ``void`` *func* ``(void) try {`` Stmt_... ``}`` | FunctionTryStmt_ | | | | CatchBlock_... CatchAnyBlock_ | | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``;`` | EmptyStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``break;`` | BreakStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``continue;`` | ContinueStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``goto`` LabelStmt_ ``;`` | GotoStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | *slabel* ``:`` | LabelStmt_ | | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ | ``float`` *arr* ``[`` Expr_ ``] [`` Expr_ ``];`` | VlaDeclStmt_ | C99 variable-length array | +----------------------------------------------------------+--------------------------------+---------------------------------------------------+ Expression classes ~~~~~~~~~~~~~~~~~~ This table lists subclasses of Expr_ representing C/C++ expressions. +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Example syntax | CodeQL class(es) | Remarks | +=======================================================+====================================================+===========================================+ | ``{`` Expr_... ``}`` | | ArrayAggregateLiteral_ | | | | | ClassAggregateLiteral_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``alignof (`` Expr_ ``)`` | AlignofExprOperator_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``alignof (`` Type_ ``)`` | AlignofTypeOperator_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``[`` Expr_ ``]`` | ArrayExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``__assume (`` Expr_ ``)`` | AssumeExpr_ | Microsoft extension | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``static_assert (`` Expr_ ``,`` StringLiteral_ ``)`` | StaticAssert_ | | C++11 | | ``_Static_assert (`` Expr_ ``,`` StringLiteral_ ``)`` | | | C11 | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``__noop;`` | BuiltInNoOp_ | Microsoft extension | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``(`` Expr_... ``)`` | ExprCall_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | | *func* ``(`` Expr_... ``)`` | FunctionCall_ | | | | *instance* ``.`` *func* ``(`` Expr_... ``)`` | | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``,`` Expr_ | CommaExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``if (`` Type_ *arg* ``=`` Expr_ ``)`` | ConditionDeclExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``(`` Type_ ``)`` Expr_ | CStyleCast_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``const_cast <`` Type_ ``> (`` Expr_ ``)`` | ConstCast_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``dynamic_cast <`` Type_ ``> (`` Expr_ ``)`` | DynamicCast_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``reinterpret_cast <`` Type_ ``> (`` Expr_ ``)`` | ReinterpretCast_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``static_cast <`` Type_ ``> (`` Expr_ ``)`` | StaticCast_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | | ``template < typename...`` *T* ``>`` | FoldExpr_ | Appears only in *uninstantiated* | | | ``auto`` *sum* ``(`` *T* `...` *t* ``)`` | | templates | | | ``{ return (`` *t* ``+ ... + 0 ); }`` | | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``int`` *func* ``(`` *format* ``, ... );`` | FormattingFunctionCall_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | | ``[ = ] ( float`` *b* ``) -> float`` | LambdaExpression_ | C++11 | | | ``{ return`` *captured* ``*`` *b* ``; }`` | | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | | ``^ int ( int`` *x* ``, int`` *y* ``) {`` | BlockExpr_ | Apple extension | | | ``{`` Stmt_... ``; return`` *x* ``+`` *y* ``; }``| | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``void *`` *labelptr* ``= &&`` *label* ``;`` | LabelLiteral_ | GNU extension; use with ComputedGotoStmt_ | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | *"%3d %s\\n"* | FormatLiteral_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | *0xdbceffca* | HexLiteral_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | *0167* | OctalLiteral_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | *'c'* | CharLiteral_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | *"abcdefgh"*, *L"wide"* | StringLiteral_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``new`` Type_ ``[`` Expr_ ``]`` | NewArrayExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``new`` Type_ | NewExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``delete [ ]`` Expr_ ``;`` | DeleteArrayExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``delete`` Expr_ ``;`` | DeleteExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``noexcept (`` Expr_ ``)`` | NoExceptExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``=`` Expr_ | AssignExpr_ | See also Initializer_ | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``+=`` Expr_ | | AssignAddExpr_ | | | | | AssignPointerAddExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``/=`` Expr_ | AssignDivExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``*=`` Expr_ | AssignMulExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``%=`` Expr_ | AssignRemExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``-=`` Expr_ | | AssignSubExpr_ | | | | | AssignPointerSubExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``&=`` Expr_ | AssignAndExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``<<=`` Expr_ | AssignLShiftExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ `` | =`` Expr_ | AssignOrExpr_ | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``>>=`` Expr_ | AssignRShiftExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``^=`` Expr_ | AssignXorExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``+`` Expr_ | | AddExpr_ | | | | | | PointerAddExpr_ | | | | | | ImaginaryRealAddExpr_ | | C99 | | | | RealImaginaryAddExpr_ | | C99 | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``/`` Expr_ | | DivExpr_ | | | | | | ImaginaryDivExpr_ | | C99 | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``>?`` Expr_ | MaxExpr_ | GNU extension | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``>`` Expr_ | RShiftExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``&&`` Expr_ | LogicalAndExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``||`` Expr_ | LogicalOrExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``==`` Expr_ | EQExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``!=`` Expr_ | NEExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``>=`` Expr_ | GEExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``>`` Expr_ | GTExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``<=`` Expr_ | LEExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``<`` Expr_ | LTExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``?`` Expr_ ``:`` Expr_ | ConditionalExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``&`` Expr_ | AddressOfExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``*`` Expr_ | PointerDereferenceExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``--`` | PostfixDecrExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``--`` Expr_ | PrefixDecrExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | Expr_ ``++`` | PostfixIncrExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``++`` Expr_ | PrefixIncrExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``__imag (`` Expr_ ``)`` | ImaginaryPartExpr_ | GNU extension | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``__real (`` Expr_ ``)`` | RealPartExpr_ | GNU extension | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``-`` Expr_ | UnaryMinusExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``+`` Expr_ | UnaryPlusExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``~`` Expr_ | | ComplementExpr_ | | | | | | ConjugationExpr_ | | GNU extension | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``!`` Expr_ | NotExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | | ``int`` *vect* ``__attribute__`` | VectorFillOperation_ | GNU extension | | | ``( ( vector_size (`` *16* ``) ) )`` | | | | | ``= {`` *3* ``,`` *8* ``,`` *32* ``,`` | | | | *33* ``};`` | | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``sizeof (`` Expr_ ``)`` | SizeofExprOperator_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``sizeof (`` Type_ ``)`` | SizeofTypeOperator_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | | ``template < typename...`` *T* ``>`` | SizeofPackOperator_ | | | | ``int`` *count* ``(`` *T* ``&&...`` *t* ``)`` | | | | | ``{ return sizeof... (`` *t* ``); }`` | | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``( {`` Stmt_... ``;`` Expr_ ``} )`` | StmtExpr_ | GNU/Clang extension | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``this`` | ThisExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``throw (`` Expr_ ``);`` | ThrowExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``throw;`` | ReThrowExpr_ | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | | ``typeid (`` Expr_ ``)`` | TypeidOperator_ | | | | ``typeid (`` Type_ ``)`` | | | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ | ``__uuidof (`` Expr_ ``)`` | UuidofOperator_ | Microsoft extension | +-------------------------------------------------------+----------------------------------------------------+-------------------------------------------+ Type classes ~~~~~~~~~~~~ This table lists subclasses of Type_ representing C/C++ types. +-------------------------------------------------------------------+---------------------------------+-----------------+ | Example syntax | CodeQL class | Remarks | +===================================================================+=================================+=================+ | ``void`` | VoidType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``_Bool`` or ``bool`` | BoolType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``char16_t`` | Char16Type_ | C11, C++11 | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``char32_t`` | Char32Type_ | C11, C++11 | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``char`` | PlainCharType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``signed char`` | SignedCharType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``unsigned char`` | UnsignedCharType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``int`` | IntType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``long long`` | LongLongType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``long`` | LongType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``short`` | ShortType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``wchar_t`` | WideCharType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``nullptr_t`` | NullPointerType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``double`` | DoubleType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``long double`` | LongDoubleType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``float`` | FloatType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``auto`` | AutoType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``decltype (`` Expr_ ``)`` | Decltype_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | Type_ ``[`` *n* ``]`` | ArrayType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | Type_ ``( ^`` *blockptr* ``) (`` Parameter_... ``)`` | BlockType_ | Apple extension | +-------------------------------------------------------------------+---------------------------------+-----------------+ | Type_ ``( *`` *funcptr* ``) (`` Parameter_... ``)`` | FunctionPointerType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | Type_ ``( &`` *funcref* ``) (`` Parameter_... ``)`` | FunctionReferenceType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | Type_ ``__attribute__ ( ( vector_size (`` *n* ``) ) )`` | GNUVectorType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | Type_ ``*`` | PointerType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | Type_ ``&`` | LValueReferenceType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | Type_ ``&&`` | RValueReferenceType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | Type_ ``(`` Class_ ``*::`` *membptr* ``) (`` Parameter_... ``)`` | PointerToMemberType_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``template < template < typename > class`` *C* ``>`` | TemplateTemplateParameter_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ | ``template < typename`` *T* ``>`` | TemplateParameter_ | | +-------------------------------------------------------------------+---------------------------------+-----------------+ Preprocessor classes ~~~~~~~~~~~~~~~~~~~~ This table lists Preprocessor_ classes representing C/C++ preprocessing directives. +-------------------------------------+----------------------+----------------------+ | Example syntax | CodeQL class | Remarks | +=====================================+======================+======================+ | ``#elif`` *condition* | PreprocessorElif_ | | +-------------------------------------+----------------------+----------------------+ | ``#if`` *condition* | PreprocessorIf_ | | +-------------------------------------+----------------------+----------------------+ | ``#ifdef`` *macro* | PreprocessorIfdef_ | | +-------------------------------------+----------------------+----------------------+ | ``#ifndef`` *macro* | PreprocessorIfndef_ | | +-------------------------------------+----------------------+----------------------+ | ``#else`` | PreprocessorElse_ | | +-------------------------------------+----------------------+----------------------+ | ``#endif`` | PreprocessorEndif_ | | +-------------------------------------+----------------------+----------------------+ | ``#line`` *line_number* *file_name* | PreprocessorLine_ | | +-------------------------------------+----------------------+----------------------+ | ``#pragma`` *pragma_property* | PreprocessorPragma_ | | +-------------------------------------+----------------------+----------------------+ | ``#undef`` *macro* | PreprocessorUndef_ | | +-------------------------------------+----------------------+----------------------+ | ``#warning`` *message* | PreprocessorWarning_ | | +-------------------------------------+----------------------+----------------------+ | ``#error`` *message* | PreprocessorError_ | | +-------------------------------------+----------------------+----------------------+ | ``#include`` *file_name* | Include_ | | +-------------------------------------+----------------------+----------------------+ | ``#import`` *file_name* | Import_ | Apple/NeXT extension | +-------------------------------------+----------------------+----------------------+ | ``#include_next`` *file_name* | IncludeNext_ | Apple/NeXT extension | +-------------------------------------+----------------------+----------------------+ | ``#define`` *macro* ... | Macro_ | | +-------------------------------------+----------------------+----------------------+ Further reading --------------- .. include:: ../reusables/cpp-further-reading.rst .. include:: ../reusables/codeql-ref-tools-further-reading.rst .. Links used in tables. For information about using these links, see https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#hyperlinks. .. _Declaration: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Declaration.qll/type.Declaration$Declaration.html .. _GlobalVariable: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Variable.qll/type.Variable$GlobalVariable.html .. _NamespaceVariable: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Variable.qll/type.Variable$NamespaceVariable.html .. _LocalVariable: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Variable.qll/type.Variable$LocalVariable.html .. _Initializer: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Initializer.qll/type.Initializer$Initializer.html .. _MemberVariable: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Variable.qll/type.Variable$MemberVariable.html .. _Function: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Function.qll/type.Function$Function.html .. _TemplateFunction: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Function.qll/type.Function$TemplateFunction.html .. _FormattingFunction: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/models/interfaces/FormattingFunction.qll/type.FormattingFunction$FormattingFunction.html .. _FunctionTemplateInstantiation: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Function.qll/type.Function$FunctionTemplateInstantiation.html .. _FunctionTemplateSpecialization: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Function.qll/type.Function$FunctionTemplateSpecialization.html .. _MemberFunction: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$MemberFunction.html .. _ConstMemberFunction: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$ConstMemberFunction.html .. _VirtualFunction: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$VirtualFunction.html .. _Constructor: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$Constructor.html .. _ConversionOperator: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$ConversionOperator.html .. _Destructor: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$Destructor.html .. _ConversionConstructor: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$ConversionConstructor.html .. _CopyAssignmentOperator: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$CopyAssignmentOperator.html .. _MoveAssignmentOperator: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$MoveAssignmentOperator.html .. _CopyConstructor: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$CopyConstructor.html .. _MoveConstructor: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$MoveConstructor.html .. _NoArgConstructor: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/MemberFunction.qll/type.MemberFunction$NoArgConstructor.html .. _EnumConstant: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Enum.qll/type.Enum$EnumConstant.html .. _FriendDecl: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/FriendDecl.qll/type.FriendDecl$FriendDecl.html .. _LocalEnum: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Enum.qll/type.Enum$LocalEnum.html .. _NestedEnum: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Enum.qll/type.Enum$NestedEnum.html .. _ScopedEnum: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Enum.qll/type.Enum$ScopedEnum.html .. _AbstractClass: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Class.qll/type.Class$AbstractClass.html .. _ClassTemplateInstantiation: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Class.qll/type.Class$ClassTemplateInstantiation.html .. _Type: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$Type.html .. _FullClassTemplateSpecialization: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Class.qll/type.Class$FullClassTemplateSpecialization.html .. _PartialClassTemplateSpecialization: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Class.qll/type.Class$PartialClassTemplateSpecialization.html .. _LocalClass: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Class.qll/type.Class$LocalClass.html .. _NestedClass: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Class.qll/type.Class$NestedClass.html .. _Class: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Class.qll/type.Class$Class.html .. _Parameter: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Parameter.qll/type.Parameter$Parameter.html .. _Struct: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Struct.qll/type.Struct$Struct.html .. _Union: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Union.qll/type.Union$Union.html .. _ProxyClass: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Class.qll/type.Class$ProxyClass.html .. _LocalStruct: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Struct.qll/type.Struct$LocalStruct.html .. _NestedStruct: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Struct.qll/type.Struct$NestedStruct.html .. _LocalUnion: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Union.qll/type.Union$LocalUnion.html .. _NestedUnion: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Union.qll/type.Union$NestedUnion.html .. _TypedefType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/TypedefType.qll/type.TypedefType$TypedefType.html .. _LocalTypedefType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/TypedefType.qll/type.TypedefType$LocalTypedefType.html .. _NestedTypedefType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/TypedefType.qll/type.TypedefType$NestedTypedefType.html .. _ClassDerivation: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Class.qll/type.Class$ClassDerivation.html .. _VirtualClassDerivation: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Class.qll/type.Class$VirtualClassDerivation.html .. _TemplateClass: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Class.qll/type.Class$TemplateClass.html .. _TemplateVariable: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Variable.qll/type.Variable$TemplateVariable.html .. _Stmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$Stmt.html .. _AsmStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$AsmStmt.html .. _BlockStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Block.qll/type.Block$BlockStmt.html .. _CatchBlock: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$CatchBlock.html .. _CatchAnyBlock: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$CatchAnyBlock.html .. _ComputedGotoStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$ComputedGotoStmt.html .. _LabelLiteral: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Literal.qll/type.Literal$LabelLiteral.html .. _DeclStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$DeclStmt.html .. _Expr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$Expr.html .. _IfStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$IfStmt.html .. _SwitchCase: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$SwitchCase.html .. _SwitchStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$SwitchStmt.html .. _DoStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$DoStmt.html .. _ForStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$ForStmt.html .. _RangeBasedForStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$RangeBasedForStmt.html .. _WhileStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$WhileStmt.html .. _ExprStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$ExprStmt.html .. _MicrosoftTryExceptStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$MicrosoftTryExceptStmt.html .. _MicrosoftTryFinallyStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$MicrosoftTryFinallyStmt.html .. _ReturnStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$ReturnStmt.html .. _TryStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$TryStmt.html .. _FunctionTryStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$FunctionTryStmt.html .. _EmptyStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$EmptyStmt.html .. _BreakStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$BreakStmt.html .. _ContinueStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$ContinueStmt.html .. _LabelStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$LabelStmt.html .. _GotoStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$GotoStmt.html .. _VlaDeclStmt: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt$VlaDeclStmt.html .. _ArrayAggregateLiteral: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Literal.qll/type.Literal$ArrayAggregateLiteral.html .. _ClassAggregateLiteral: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Literal.qll/type.Literal$ClassAggregateLiteral.html .. _AlignofExprOperator: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$AlignofExprOperator.html .. _AlignofTypeOperator: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$AlignofTypeOperator.html .. _ArrayExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Access.qll/type.Access$ArrayExpr.html .. _AssumeExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$AssumeExpr.html .. _StringLiteral: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Literal.qll/type.Literal$StringLiteral.html .. _StaticAssert: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Element.qll/type.Element$StaticAssert.html .. _BuiltInNoOp: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/BuiltInOperations.qll/type.BuiltInOperations$BuiltInNoOp.html .. _ExprCall: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Call.qll/type.Call$ExprCall.html .. _FunctionCall: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Call.qll/type.Call$FunctionCall.html .. _CommaExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$CommaExpr.html .. _ConditionDeclExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$ConditionDeclExpr.html .. _CStyleCast: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$CStyleCast.html .. _ConstCast: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$ConstCast.html .. _DynamicCast: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$DynamicCast.html .. _ReinterpretCast: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$ReinterpretCast.html .. _StaticCast: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$StaticCast.html .. _FoldExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$FoldExpr.html .. _FormattingFunctionCall: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/commons/Printf.qll/type.Printf$FormattingFunctionCall.html .. _LambdaExpression: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Lambda.qll/type.Lambda$LambdaExpression.html .. _BlockExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$BlockExpr.html .. _FormatLiteral: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/commons/Printf.qll/type.Printf$FormatLiteral.html .. _HexLiteral: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Literal.qll/type.Literal$HexLiteral.html .. _OctalLiteral: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Literal.qll/type.Literal$OctalLiteral.html .. _CharLiteral: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Literal.qll/type.Literal$CharLiteral.html .. _NewArrayExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$NewArrayExpr.html .. _NewExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$NewExpr.html .. _DeleteArrayExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$DeleteArrayExpr.html .. _DeleteExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$DeleteExpr.html .. _NoExceptExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$NoExceptExpr.html .. _AssignExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignExpr.html .. _AssignAddExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignAddExpr.html .. _AssignPointerAddExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignPointerAddExpr.html .. _AssignDivExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignDivExpr.html .. _AssignMulExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignMulExpr.html .. _AssignRemExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignRemExpr.html .. _AssignSubExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignSubExpr.html .. _AssignPointerSubExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignPointerSubExpr.html .. _AssignAndExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignAndExpr.html .. _AssignLShiftExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignLShiftExpr.html .. _AssignOrExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignOrExpr.html .. _AssignRShiftExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignRShiftExpr.html .. _AssignXorExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Assignment.qll/type.Assignment$AssignXorExpr.html .. _AddExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$AddExpr.html .. _PointerAddExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$PointerAddExpr.html .. _ImaginaryRealAddExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$ImaginaryRealAddExpr.html .. _RealImaginaryAddExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$RealImaginaryAddExpr.html .. _DivExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$DivExpr.html .. _ImaginaryDivExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$ImaginaryDivExpr.html .. _MaxExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$MaxExpr.html .. _MinExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$MinExpr.html .. _MulExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$MulExpr.html .. _ImaginaryMulExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$ImaginaryMulExpr.html .. _RemExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$RemExpr.html .. _SubExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$SubExpr.html .. _PointerDiffExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$PointerDiffExpr.html .. _PointerSubExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$PointerSubExpr.html .. _ImaginaryRealSubExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$ImaginaryRealSubExpr.html .. _RealImaginarySubExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$RealImaginarySubExpr.html .. _BitwiseAndExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/BitwiseOperation.qll/type.BitwiseOperation$BitwiseAndExpr.html .. _BitwiseOrExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/BitwiseOperation.qll/type.BitwiseOperation$BitwiseOrExpr.html .. _BitwiseXorExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/BitwiseOperation.qll/type.BitwiseOperation$BitwiseXorExpr.html .. _LShiftExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/BitwiseOperation.qll/type.BitwiseOperation$LShiftExpr.html .. _RShiftExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/BitwiseOperation.qll/type.BitwiseOperation$RShiftExpr.html .. _LogicalAndExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/LogicalOperation.qll/type.LogicalOperation$LogicalAndExpr.html .. _LogicalOrExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/LogicalOperation.qll/type.LogicalOperation$LogicalOrExpr.html .. _EQExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ComparisonOperation.qll/type.ComparisonOperation$EQExpr.html .. _NEExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ComparisonOperation.qll/type.ComparisonOperation$NEExpr.html .. _GEExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ComparisonOperation.qll/type.ComparisonOperation$GEExpr.html .. _GTExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ComparisonOperation.qll/type.ComparisonOperation$GTExpr.html .. _LEExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ComparisonOperation.qll/type.ComparisonOperation$LEExpr.html .. _LTExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ComparisonOperation.qll/type.ComparisonOperation$LTExpr.html .. _ConditionalExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/LogicalOperation.qll/type.LogicalOperation$ConditionalExpr.html .. _AddressOfExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$AddressOfExpr.html .. _PointerDereferenceExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$PointerDereferenceExpr.html .. _PostfixDecrExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$PostfixDecrExpr.html .. _PrefixDecrExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$PrefixDecrExpr.html .. _PostfixIncrExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$PostfixIncrExpr.html .. _PrefixIncrExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$PrefixIncrExpr.html .. _ImaginaryPartExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$ImaginaryPartExpr.html .. _RealPartExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$RealPartExpr.html .. _UnaryMinusExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$UnaryMinusExpr.html .. _UnaryPlusExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$UnaryPlusExpr.html .. _ComplementExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/BitwiseOperation.qll/type.BitwiseOperation$ComplementExpr.html .. _ConjugationExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/ArithmeticOperation.qll/type.ArithmeticOperation$ConjugationExpr.html .. _NotExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/LogicalOperation.qll/type.LogicalOperation$NotExpr.html .. _VectorFillOperation: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/BuiltInOperations.qll/type.BuiltInOperations$VectorFillOperation.html .. _SizeofExprOperator: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$SizeofExprOperator.html .. _SizeofTypeOperator: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$SizeofTypeOperator.html .. _SizeofPackOperator: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$SizeofPackOperator.html .. _StmtExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$StmtExpr.html .. _ThisExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$ThisExpr.html .. _ThrowExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$ThrowExpr.html .. _ReThrowExpr: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Expr.qll/type.Expr$ReThrowExpr.html .. _TypeidOperator: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$TypeidOperator.html .. _UuidofOperator: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/exprs/Cast.qll/type.Cast$UuidofOperator.html .. _VoidType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$VoidType.html .. _BoolType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$BoolType.html .. _PlainCharType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$PlainCharType.html .. _SignedCharType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$SignedCharType.html .. _UnsignedCharType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$UnsignedCharType.html .. _IntType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$IntType.html .. _LongLongType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$LongLongType.html .. _LongType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$LongType.html .. _ShortType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$ShortType.html .. _WideCharType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$WideCharType.html .. _NullPointerType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$NullPointerType.html .. _DoubleType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$DoubleType.html .. _LongDoubleType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$LongDoubleType.html .. _FloatType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$FloatType.html .. _AutoType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$AutoType.html .. _Decltype: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$Decltype.html .. _ArrayType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$ArrayType.html .. _BlockType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$BlockType.html .. _FunctionPointerType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$FunctionPointerType.html .. _FunctionReferenceType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$FunctionReferenceType.html .. _GNUVectorType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$GNUVectorType.html .. _PointerType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$PointerType.html .. _LValueReferenceType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$LValueReferenceType.html .. _RValueReferenceType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$RValueReferenceType.html .. _PointerToMemberType: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$PointerToMemberType.html .. _TemplateTemplateParameter: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$TemplateTemplateParameter.html .. _TemplateParameter: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$TemplateParameter.html .. _Preprocessor: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/module.Preprocessor.html .. _PreprocessorElif: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/type.Preprocessor$PreprocessorElif.html .. _PreprocessorIf: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/type.Preprocessor$PreprocessorIf.html .. _PreprocessorIfdef: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/type.Preprocessor$PreprocessorIfdef.html .. _PreprocessorIfndef: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/type.Preprocessor$PreprocessorIfndef.html .. _PreprocessorElse: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/type.Preprocessor$PreprocessorElse.html .. _PreprocessorEndif: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/type.Preprocessor$PreprocessorEndif.html .. _PreprocessorLine: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/type.Preprocessor$PreprocessorLine.html .. _PreprocessorPragma: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/type.Preprocessor$PreprocessorPragma.html .. _PreprocessorUndef: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/type.Preprocessor$PreprocessorUndef.html .. _PreprocessorWarning: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/type.Preprocessor$PreprocessorWarning.html .. _PreprocessorError: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Preprocessor.qll/type.Preprocessor$PreprocessorError.html .. _Include: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Include.qll/type.Include$Include.html .. _Import: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Include.qll/type.Include$Import.html .. _IncludeNext: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Include.qll/type.Include$IncludeNext.html .. _Macro: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Macro.qll/type.Macro$Macro.html .. _Char16Type: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$Char16Type.html .. _Char32Type: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/type.Type$Char32Type.html