var cpp_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/jeff-hykin/better-cpp-syntax/blob/master/autogenerated/cpp.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/jeff-hykin/better-cpp-syntax/commit/f1d127a8af2b184db570345f0bb179503c47fdf6",name:"cpp",scopeName:"source.cpp",patterns:[{include:"#ever_present_context"},{include:"#constructor_root"},{include:"#destructor_root"},{include:"#function_definition"},{include:"#operator_overload"},{include:"#using_namespace"},{include:"#type_alias"},{include:"#using_name"},{include:"#namespace_alias"},{include:"#namespace_block"},{include:"#extern_block"},{include:"#typedef_class"},{include:"#typedef_struct"},{include:"#typedef_union"},{include:"#misc_keywords"},{include:"#standard_declares"},{include:"#class_block"},{include:"#struct_block"},{include:"#union_block"},{include:"#enum_block"},{include:"#template_isolated_definition"},{include:"#template_definition"},{include:"#template_explicit_instantiation"},{include:"#access_control_keywords"},{include:"#block"},{include:"#static_assert"},{include:"#assembly"},{include:"#function_pointer"},{include:"#evaluation_context"}],repository:{access_control_keywords:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(((?:(?:protected)|(?:private)|(?:public)))(?:\\s+)?(:))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"storage.type.modifier.access.control.$4.cpp"},"4":{},"5":{name:"punctuation.separator.colon.access.control.cpp"}}},alignas_attribute:{begin:"alignas\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.attribute.begin.cpp"}},endCaptures:{"0":{name:"punctuation.section.attribute.end.cpp"}},name:"support.other.attribute.cpp",patterns:[{include:"#attributes_context"},{begin:"\\(",end:"\\)",beginCaptures:{},endCaptures:{},patterns:[{include:"#attributes_context"},{include:"#string_context"},{include:"#ever_present_context"}]},{match:"(using)\\s+((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.class.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.class.cpp"}},name:"meta.body.class.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.class.cpp",patterns:[{include:"$self"}]}]},class_declare:{match:"((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.italic.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.bold.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.inline.raw.string.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.italic.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.bold.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.inline.raw.string.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.italic.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.bold.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.inline.raw.string.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.constructor.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{patterns:[{include:"#functional_specifiers_pre_parameters"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{name:"storage.type.modifier.calling-convention.cpp"},"11":{patterns:[{include:"#inline_comment"}]},"12":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"13":{name:"comment.block.cpp"},"14":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"15":{name:"entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"}},endCaptures:{},name:"meta.function.definition.special.constructor.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.head.function.definition.special.constructor.cpp",patterns:[{include:"#ever_present_context"},{match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",captures:{"1":{name:"keyword.operator.assignment.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp"},"7":{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"}}},{include:"#functional_specifiers_pre_parameters"},{begin:":",end:"(?=\\{)",beginCaptures:{"0":{name:"punctuation.separator.initializers.cpp"}},endCaptures:{},patterns:[{begin:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",end:"\\)",beginCaptures:{"1":{name:"entity.name.function.call.initializer.cpp"},"2":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"3":{},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",patterns:[{include:"#evaluation_context"}]},{begin:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.body.function.definition.special.constructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.constructor.cpp",patterns:[{include:"$self"}]}]},constructor_root:{begin:"\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.constructor.cpp"},"1":{name:"storage.type.modifier.calling-convention.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",end:"\\)",beginCaptures:{"1":{name:"entity.name.function.call.initializer.cpp"},"2":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"3":{},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",patterns:[{include:"#evaluation_context"}]},{begin:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.body.function.definition.special.constructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.constructor.cpp",patterns:[{include:"$self"}]}]},control_flow_keywords:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)",end:"\\}",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))(?:\\s+)?(;?)",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"keyword.control.directive.import.cpp"},"5":{name:"string.quoted.other.lt-gt.include.cpp"},"6":{name:"punctuation.definition.string.begin.cpp"},"7":{name:"punctuation.definition.string.end.cpp"},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"10":{name:"string.quoted.double.include.cpp"},"11":{name:"punctuation.definition.string.begin.cpp"},"12":{name:"punctuation.definition.string.end.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"15":{name:"entity.name.other.preprocessor.macro.include.cpp"},"16":{patterns:[{include:"#inline_comment"}]},"17":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"18":{patterns:[{include:"#inline_comment"}]},"19":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"20":{patterns:[{include:"#inline_comment"}]},"21":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"22":{name:"punctuation.terminator.statement.cpp"}},name:"meta.preprocessor.import.cpp"},d9bc4796b0b_preprocessor_number_literal:{match:"(?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.member.destructor.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"storage.type.modifier.calling-convention.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{patterns:[{include:"#functional_specifiers_pre_parameters"}]},"11":{patterns:[{include:"#inline_comment"}]},"12":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"13":{name:"comment.block.cpp"},"14":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"15":{name:"entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"}},endCaptures:{},name:"meta.function.definition.special.member.destructor.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.head.function.definition.special.member.destructor.cpp",patterns:[{include:"#ever_present_context"},{match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",captures:{"1":{name:"keyword.operator.assignment.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"},"7":{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"}}},{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"}},endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"}},contentName:"meta.function.definition.parameters.special.member.destructor",patterns:[]},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.body.function.definition.special.member.destructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cpp",patterns:[{include:"$self"}]}]},destructor_root:{begin:"((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.member.destructor.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"storage.type.modifier.calling-convention.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"},{match:"(?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.body.function.definition.special.member.destructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cpp",patterns:[{include:"$self"}]}]},diagnostic:{begin:"(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:error|warning)))\\b(?:\\s+)?",end:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.enum.cpp"},"1":{name:"storage.type.enum.cpp"},"2":{name:"storage.type.enum.enum-key.$2.cpp"},"3":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"4":{name:"entity.name.type.enum.cpp"},"5":{name:"punctuation.separator.colon.type-specifier.cpp"},"6":{patterns:[{include:"#scope_resolution_inner_generated"}]},"7":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"8":{patterns:[{include:"#template_call_range"}]},"9":{},"10":{name:"entity.name.scope-resolution.cpp"},"11":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"12":{},"13":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{name:"comment.block.cpp"},"15":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"16":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"17":{name:"storage.type.integral.$17.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.enum.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.enum.cpp"}},name:"meta.head.enum.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.enum.cpp"}},name:"meta.body.enum.cpp",patterns:[{include:"#ever_present_context"},{include:"#enumerator_list"},{include:"#comments"},{include:"#comma"},{include:"#semicolon"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.enum.cpp",patterns:[{include:"$self"}]}]},enum_declare:{match:"((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.extern.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"storage.type.extern.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.extern.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.extern.cpp"}},name:"meta.head.extern.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.extern.cpp"}},name:"meta.body.extern.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.extern.cpp",patterns:[{include:"$self"}]},{include:"$self"}]},function_body_context:{patterns:[{include:"#ever_present_context"},{include:"#using_namespace"},{include:"#type_alias"},{include:"#using_name"},{include:"#namespace_alias"},{include:"#typedef_class"},{include:"#typedef_struct"},{include:"#typedef_union"},{include:"#misc_keywords"},{include:"#standard_declares"},{include:"#class_block"},{include:"#struct_block"},{include:"#union_block"},{include:"#enum_block"},{include:"#access_control_keywords"},{include:"#block"},{include:"#static_assert"},{include:"#assembly"},{include:"#function_pointer"},{include:"#switch_statement"},{include:"#goto_statement"},{include:"#evaluation_context"},{include:"#label"}]},function_call:{begin:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",end:"\\)",beginCaptures:{"1":{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.function.call.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"11":{},"12":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"13":{name:"comment.block.cpp"},"14":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"15":{name:"punctuation.section.arguments.begin.bracket.round.function.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.call.cpp"}},patterns:[{include:"#evaluation_context"}]},function_definition:{begin:"(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.cpp"},"1":{name:"storage.type.template.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{match:"((?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"14":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"15":{patterns:[{include:"#inline_comment"}]},"16":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"17":{name:"comment.block.cpp"},"18":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"19":{patterns:[{include:"#inline_comment"}]},"20":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"21":{name:"comment.block.cpp"},"22":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"23":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",captures:{"1":{name:"punctuation.definition.function.return-type.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"7":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"10":{name:"comment.block.cpp"},"11":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"12":{patterns:[{include:"#inline_comment"}]},"13":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{name:"comment.block.cpp"},"15":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"16":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.cpp"}},name:"meta.body.function.definition.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.cpp",patterns:[{include:"$self"}]}]},function_parameter_context:{patterns:[{include:"#ever_present_context"},{include:"#parameter"},{include:"#comma"}]},function_pointer:{begin:"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",end:"(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",end:"(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"keyword.control.directive.$5.cpp"},"4":{name:"punctuation.definition.directive.cpp"},"6":{name:"string.quoted.other.lt-gt.include.cpp"},"7":{name:"punctuation.definition.string.begin.cpp"},"8":{name:"punctuation.definition.string.end.cpp"},"9":{patterns:[{include:"#inline_comment"}]},"10":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"11":{name:"string.quoted.double.include.cpp"},"12":{name:"punctuation.definition.string.begin.cpp"},"13":{name:"punctuation.definition.string.end.cpp"},"14":{patterns:[{include:"#inline_comment"}]},"15":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"16":{name:"entity.name.other.preprocessor.macro.include.cpp"},"17":{patterns:[{include:"#inline_comment"}]},"18":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"21":{patterns:[{include:"#inline_comment"}]},"22":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]}},name:"meta.preprocessor.include.cpp"},inheritance_context:{patterns:[{include:"#ever_present_context"},{match:",",name:"punctuation.separator.delimiter.comma.inheritance.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",captures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"7":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))",end:"(?<=[;}])",beginCaptures:{"1":{name:"punctuation.definition.capture.begin.lambda.cpp"},"2":{name:"meta.lambda.capture.cpp",patterns:[{include:"#the_this_keyword"},{match:"((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",captures:{"1":{name:"variable.parameter.capture.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{name:"punctuation.separator.delimiter.comma.cpp"},"7":{name:"keyword.operator.assignment.cpp"}}},{include:"#evaluation_context"}]},"3":{},"4":{name:"punctuation.definition.capture.end.lambda.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"7":{name:"comment.block.cpp"},"8":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},endCaptures:{},patterns:[{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.lambda.cpp"}},endCaptures:{"0":{name:"punctuation.definition.parameters.end.lambda.cpp"}},name:"meta.function.definition.parameters.lambda.cpp",patterns:[{include:"#function_parameter_context"}]},{match:"(?",end:"(?=\\{)",beginCaptures:{"0":{name:"punctuation.definition.lambda.return-type.cpp"}},endCaptures:{},patterns:[{include:"#comments"},{match:"\\S+",name:"storage.type.return-type.lambda.cpp"}]},{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.lambda.cpp"}},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.lambda.cpp"}},name:"meta.function.definition.body.lambda.cpp",patterns:[{include:"$self"}]}]},language_constants:{match:"(?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(\\b(?!uint_least32_t[^\\w]|uint_least16_t[^\\w]|uint_least64_t[^\\w]|int_least32_t[^\\w]|int_least64_t[^\\w]|uint_fast32_t[^\\w]|uint_fast64_t[^\\w]|uint_least8_t[^\\w]|uint_fast16_t[^\\w]|int_least16_t[^\\w]|int_fast16_t[^\\w]|int_least8_t[^\\w]|uint_fast8_t[^\\w]|int_fast64_t[^\\w]|int_fast32_t[^\\w]|int_fast8_t[^\\w]|suseconds_t[^\\w]|useconds_t[^\\w]|in_addr_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|in_port_t[^\\w]|uintptr_t[^\\w]|blksize_t[^\\w]|uint32_t[^\\w]|uint64_t[^\\w]|u_quad_t[^\\w]|intmax_t[^\\w]|intmax_t[^\\w]|unsigned[^\\w]|blkcnt_t[^\\w]|uint16_t[^\\w]|intptr_t[^\\w]|swblk_t[^\\w]|wchar_t[^\\w]|u_short[^\\w]|qaddr_t[^\\w]|caddr_t[^\\w]|daddr_t[^\\w]|fixpt_t[^\\w]|nlink_t[^\\w]|segsz_t[^\\w]|clock_t[^\\w]|ssize_t[^\\w]|int16_t[^\\w]|int32_t[^\\w]|int64_t[^\\w]|uint8_t[^\\w]|int8_t[^\\w]|mode_t[^\\w]|quad_t[^\\w]|ushort[^\\w]|u_long[^\\w]|u_char[^\\w]|double[^\\w]|signed[^\\w]|time_t[^\\w]|size_t[^\\w]|key_t[^\\w]|div_t[^\\w]|ino_t[^\\w]|uid_t[^\\w]|gid_t[^\\w]|off_t[^\\w]|pid_t[^\\w]|float[^\\w]|dev_t[^\\w]|u_int[^\\w]|short[^\\w]|bool[^\\w]|id_t[^\\w]|uint[^\\w]|long[^\\w]|char[^\\w]|void[^\\w]|auto[^\\w]|id_t[^\\w]|int[^\\w])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"variable.language.this.cpp"},"4":{name:"variable.other.object.access.cpp"},"5":{name:"punctuation.separator.dot-access.cpp"},"6":{name:"punctuation.separator.pointer-access.cpp"},"7":{patterns:[{match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.property.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{match:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.access.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{include:"#member_access"},{include:"#method_access"}]},"8":{name:"variable.other.property.cpp"}}},memory_operators:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(delete)(?:\\s+)?(\\[\\])|(delete))|(new))(?!\\w))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"keyword.operator.wordlike.cpp"},"4":{name:"keyword.operator.delete.array.cpp"},"5":{name:"keyword.operator.delete.array.bracket.cpp"},"6":{name:"keyword.operator.delete.cpp"},"7":{name:"keyword.operator.new.cpp"}}},method_access:{begin:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()",end:"\\)",beginCaptures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.access.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"},"9":{patterns:[{match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.property.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{match:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.access.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{include:"#member_access"},{include:"#method_access"}]},"10":{name:"entity.name.function.member.cpp"},"11":{name:"punctuation.section.arguments.begin.bracket.round.function.member.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.member.cpp"}},patterns:[{include:"#evaluation_context"}]},misc_keywords:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.namespace.cpp"},"1":{name:"keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"}},endCaptures:{},name:"meta.block.namespace.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.namespace.cpp"}},name:"meta.head.namespace.cpp",patterns:[{include:"#ever_present_context"},{include:"#attributes_context"},{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.namespace.cpp"}},name:"meta.body.namespace.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.namespace.cpp",patterns:[{include:"$self"}]}]},noexcept_operator:{begin:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.operator-overload.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{include:"#inline_comment"}]},"12":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"13":{name:"comment.block.cpp"},"14":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"15":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"}},name:"meta.body.function.definition.special.operator-overload.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.operator-overload.cpp",patterns:[{include:"$self"}]}]},operators:{patterns:[{begin:"((?>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.cpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.cpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.cpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.cpp"},{match:"&|\\||\\^|~",name:"keyword.operator.bitwise.cpp"},{include:"#assignment_operator"},{match:"%|\\*|\\/|-|\\+",name:"keyword.operator.arithmetic.cpp"},{include:"#ternary_operator"}]},over_qualified_types:{patterns:[{match:"(\\bstruct)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.])",captures:{"0":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"1":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"4":{patterns:[{include:"#inline_comment"}]},"5":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"6":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_call:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_call_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.function.call.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"}}},scope_resolution_function_definition:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_definition_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.function.definition.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"}}},scope_resolution_function_definition_operator_overload:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_definition_operator_overload_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.function.definition.operator-overload.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"}}},scope_resolution_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"}}},scope_resolution_namespace_alias:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_alias_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.namespace.alias.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"}}},scope_resolution_namespace_block:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_block_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.namespace.block.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"}}},scope_resolution_namespace_using:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_using_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.namespace.using.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"}}},scope_resolution_parameter:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_parameter_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.parameter.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"}}},scope_resolution_template_call:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_template_call_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.template.call.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"}}},scope_resolution_template_definition:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_template_definition_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.template.definition.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"}}},semicolon:{match:";",name:"punctuation.terminator.statement.cpp"},simple_type:{match:"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?",captures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"7":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.struct.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.struct.cpp"}},name:"meta.body.struct.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.struct.cpp",patterns:[{include:"$self"}]}]},struct_declare:{match:"((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.switch.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"keyword.control.switch.cpp"}},endCaptures:{},name:"meta.block.switch.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.switch.cpp"}},name:"meta.head.switch.cpp",patterns:[{include:"#switch_conditional_parentheses"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.switch.cpp"}},name:"meta.body.switch.cpp",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.switch.cpp",patterns:[{include:"$self"}]}]},template_argument_defaulted:{match:"(?<=<|,)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\s+((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(\\=)",captures:{"1":{name:"storage.type.template.argument.$1.cpp"},"2":{name:"entity.name.type.template.cpp"},"3":{name:"keyword.operator.assignment.cpp"}}},template_call_context:{patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{include:"#storage_types"},{include:"#language_constants"},{include:"#scope_resolution_template_call_inner_generated"},{include:"#operators"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma_in_template_argument"},{include:"#qualified_type"}]},template_call_innards:{match:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+",captures:{"0":{patterns:[{include:"#template_call_range"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},name:"meta.template.call.cpp"},template_call_range:{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},template_definition:{begin:"(?",beginCaptures:{"1":{name:"storage.type.template.cpp"},"2":{name:"punctuation.section.angle-brackets.begin.template.definition.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.definition.cpp"}},name:"meta.template.definition.cpp",patterns:[{begin:"(?<=\\w)(?:\\s+)?<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},patterns:[{include:"#template_call_context"}]},{include:"#template_definition_context"}]},template_definition_argument:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\.\\.\\.)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|(?)(?:\\s+)?(class|typename)(?:\\s+((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?)(?:\\s+)?(?:(\\=)(?:\\s+)?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?(?:(,)|(?=>|$))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"storage.type.template.argument.$3.cpp"},"4":{patterns:[{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"storage.type.template.argument.$0.cpp"}]},"5":{name:"entity.name.type.template.cpp"},"6":{name:"storage.type.template.argument.$6.cpp"},"7":{name:"punctuation.vararg-ellipses.template.definition.cpp"},"8":{name:"entity.name.type.template.cpp"},"9":{name:"storage.type.template.cpp"},"10":{name:"punctuation.section.angle-brackets.begin.template.definition.cpp"},"11":{name:"storage.type.template.argument.$11.cpp"},"12":{name:"entity.name.type.template.cpp"},"13":{name:"punctuation.section.angle-brackets.end.template.definition.cpp"},"14":{name:"storage.type.template.argument.$14.cpp"},"15":{name:"entity.name.type.template.cpp"},"16":{name:"keyword.operator.assignment.cpp"},"17":{name:"punctuation.separator.delimiter.comma.template.argument.cpp"}}},template_definition_context:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"},{include:"#template_definition_argument"},{include:"#template_argument_defaulted"},{include:"#template_call_innards"},{include:"#evaluation_context"}]},template_explicit_instantiation:{match:"(?)(?:\\s+)?$",captures:{"1":{name:"storage.type.template.cpp"},"2":{name:"punctuation.section.angle-brackets.begin.template.definition.cpp"},"3":{name:"meta.template.definition.cpp",patterns:[{include:"#template_definition_context"}]},"4":{name:"punctuation.section.angle-brackets.end.template.definition.cpp"}}},ternary_operator:{begin:"\\?",end:":",beginCaptures:{"0":{name:"keyword.operator.ternary.cpp"}},endCaptures:{"0":{name:"keyword.operator.ternary.cpp"}},patterns:[{include:"#ever_present_context"},{include:"#string_context"},{include:"#number_literal"},{include:"#method_access"},{include:"#member_access"},{include:"#predefined_macros"},{include:"#operators"},{include:"#memory_operators"},{include:"#wordlike_operators"},{include:"#type_casting_operators"},{include:"#control_flow_keywords"},{include:"#exception_keywords"},{include:"#the_this_keyword"},{include:"#language_constants"},{include:"#builtin_storage_type_initilizer"},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"#functional_specifiers_pre_parameters"},{include:"#storage_types"},{include:"#lambdas"},{include:"#attributes_context"},{include:"#parentheses"},{include:"#function_call"},{include:"#scope_resolution_inner_generated"},{include:"#square_brackets"},{include:"#semicolon"},{include:"#comma"}],applyEndPatternLast:1},the_this_keyword:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))|(.*(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"9":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"14":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.class.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.class.cpp"}},name:"meta.body.class.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.class.cpp",patterns:[{match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",end:"(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.struct.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.struct.cpp"}},name:"meta.body.struct.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.struct.cpp",patterns:[{match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.union.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.union.cpp"}},name:"meta.body.union.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.union.cpp",patterns:[{match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",captures:{"1":{name:"storage.modifier.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"4":{patterns:[{include:"#inline_comment"}]},"5":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"6":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"7":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"12":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.union.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.union.cpp"}},name:"meta.body.union.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.union.cpp",patterns:[{include:"$self"}]}]},union_declare:{match:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?