<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Notepad++ C++ Rules" Description="Based on Microsoft Native Recommended Rules and C++ Core Check Rules." ToolsVersion="17.0">
  <Include Path="cppcorecheckrules.ruleset" Action="Default" />
  <Include Path="nativerecommendedrules.ruleset" Action="Default" />
  <Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
    <Rule Id="C26100" Action="Warning" />
    <Rule Id="C26101" Action="Warning" />
    <Rule Id="C26110" Action="Warning" />
    <Rule Id="C26111" Action="Warning" />
    <Rule Id="C26112" Action="Warning" />
    <Rule Id="C26115" Action="Warning" />
    <Rule Id="C26116" Action="Warning" />
    <Rule Id="C26117" Action="Warning" />
    <Rule Id="C26140" Action="Warning" />
    <Rule Id="C26400" Action="None" />
    <Rule Id="C26401" Action="None" />
    <Rule Id="C26402" Action="Hidden" />
    <Rule Id="C26403" Action="Warning" />
    <Rule Id="C26404" Action="Warning" />
    <Rule Id="C26405" Action="Warning" />
    <Rule Id="C26406" Action="Warning" />
    <Rule Id="C26407" Action="Warning" />
    <Rule Id="C26408" Action="Hidden" />
    <Rule Id="C26409" Action="None" />
    <Rule Id="C26410" Action="Warning" />
    <Rule Id="C26411" Action="Warning" />
    <Rule Id="C26414" Action="Hidden" />
    <Rule Id="C26415" Action="Warning" />
    <Rule Id="C26416" Action="Warning" />
    <Rule Id="C26417" Action="Warning" />
    <Rule Id="C26418" Action="Warning" />
    <Rule Id="C26426" Action="Hidden" />
    <Rule Id="C26427" Action="Warning" />
    <Rule Id="C26429" Action="None" />
    <Rule Id="C26430" Action="Hidden" />
    <Rule Id="C26431" Action="Warning" />
    <Rule Id="C26432" Action="None" />
    <Rule Id="C26433" Action="Hidden" />
    <Rule Id="C26434" Action="Hidden" />
    <Rule Id="C26435" Action="Warning" />
    <Rule Id="C26436" Action="Hidden" />  <!-- The type 'symbol' with a virtual function needs either public virtual or protected non-virtual destructor -->
    <Rule Id="C26437" Action="Warning" />
    <Rule Id="C26438" Action="Error" />   <!-- Avoid goto -->
    <Rule Id="C26439" Action="Warning" />
    <Rule Id="C26440" Action="None" />
    <Rule Id="C26441" Action="Warning" />
    <Rule Id="C26443" Action="Warning" />
    <Rule Id="C26444" Action="Warning" />
    <Rule Id="C26445" Action="Warning" />
    <Rule Id="C26446" Action="None" />
    <Rule Id="C26447" Action="Hidden" />  <!-- The function is declared noexcept but calls function function_name that may throw exceptions -->
    <Rule Id="C26448" Action="Warning" />
    <Rule Id="C26449" Action="Warning" />
    <Rule Id="C26450" Action="Warning" />
    <Rule Id="C26451" Action="Hidden" />  <!-- Arithmetic overflow: Using operator 'operator' on a size-a byte value and then casting the result to a size-b byte value. Cast the value to the wider type before calling operator 'operator' to avoid overflow -->
    <Rule Id="C26452" Action="Warning" />
    <Rule Id="C26453" Action="Warning" />
    <Rule Id="C26454" Action="Hidden" />  <!-- Arithmetic overflow: 'operator' operation produces a negative unsigned result at compile time -->
    <Rule Id="C26455" Action="Hidden" />  <!-- Default constructor should not throw. Declare it 'noexcept' -->
    <Rule Id="C26456" Action="None" />
    <Rule Id="C26459" Action="Warning" />
    <Rule Id="C26460" Action="Warning" />
    <Rule Id="C26461" Action="Hidden" />  <!-- The pointer argument 'argument' for function 'function' can be marked as a pointer to const  -->
    <Rule Id="C26462" Action="Hidden" />  <!-- The value pointed to by 'variable' is assigned only once, mark it as a pointer to const -->
    <Rule Id="C26463" Action="Warning" />
    <Rule Id="C26464" Action="Warning" />
    <Rule Id="C26465" Action="Warning" />
    <Rule Id="C26466" Action="Warning" />
    <Rule Id="C26471" Action="Warning" />
    <Rule Id="C26472" Action="Hidden" />  <!-- Don't use a static_cast for arithmetic conversions. Use brace initialization, gsl::narrow_cast, or gsl::narrow. -->
    <Rule Id="C26473" Action="Warning" />
    <Rule Id="C26474" Action="Hidden" />  <!-- Don't cast between pointer types when the conversion could be implicit. -->
    <Rule Id="C26475" Action="Hidden" />  <!-- Do not use function style C-casts. -->
    <Rule Id="C26476" Action="Hidden" />  <!-- Expression/symbol 'name' uses a naked union 'union' with multiple type pointers: Use variant instead -->
    <Rule Id="C26477" Action="Hidden" />  <!-- Use 'nullptr' rather than 0 or NULL  -->
    <Rule Id="C26478" Action="Warning" />
    <Rule Id="C26479" Action="Warning" />
    <Rule Id="C26481" Action="Hidden" />  <!-- Don't use pointer arithmetic. Use span instead -->
    <Rule Id="C26482" Action="None" />
    <Rule Id="C26483" Action="Warning" />
    <Rule Id="C26485" Action="None" />
    <Rule Id="C26490" Action="None" />
    <Rule Id="C26491" Action="Warning" />
    <Rule Id="C26492" Action="Hidden" />  <!-- Don't use const_cast to cast away const. -->
    <Rule Id="C26493" Action="Hidden" />  <!-- Don't use C-style casts. -->
    <Rule Id="C26494" Action="Hidden" />  <!-- Variable 'variable' is uninitialized. Always initialize an object. -->
    <Rule Id="C26495" Action="Warning" />
    <Rule Id="C26496" Action="None" />
    <Rule Id="C26497" Action="Hidden" />  <!-- This function function-name could be marked constexpr if compile-time evaluation is desired -->
    <Rule Id="C26498" Action="Warning" />
    <Rule Id="C26800" Action="Warning" />
    <Rule Id="C26810" Action="Warning" />
    <Rule Id="C26811" Action="Warning" />
    <Rule Id="C26812" Action="None" />
    <Rule Id="C26813" Action="Hidden" /> <!-- Use 'bitwise and' to check if a flag is set -->
    <Rule Id="C26814" Action="Hidden" /> <!-- The const variable 'variable' can be computed at compile time. Consider using constexpr -->
    <Rule Id="C26815" Action="Error" />  <!-- The pointer is dangling because it points at a temporary instance that was destroyed. -->
    <Rule Id="C26816" Action="Warning" />
    <Rule Id="C26817" Action="Warning" />
    <Rule Id="C26818" Action="Hidden" /> <!-- Switch statement does not cover all cases. Consider adding a 'default' label. -->
    <Rule Id="C26819" Action="Error" />  <!-- Unannotated fallthrough between switch labels -->
    <Rule Id="C26820" Action="Warning" />
    <Rule Id="C26826" Action="Hidden" /> <!-- Don't use C-style variable arguments -->
    <Rule Id="C26827" Action="Warning" />
    <Rule Id="C26828" Action="Warning" />
    <Rule Id="C26829" Action="Warning" />
    <Rule Id="C28020" Action="Warning" />
    <Rule Id="C28021" Action="Warning" />
    <Rule Id="C28022" Action="Warning" />
    <Rule Id="C28023" Action="Warning" />
    <Rule Id="C28024" Action="Warning" />
    <Rule Id="C28039" Action="Warning" />
    <Rule Id="C28112" Action="Warning" />
    <Rule Id="C28113" Action="Warning" />
    <Rule Id="C28125" Action="Warning" />
    <Rule Id="C28137" Action="Warning" />
    <Rule Id="C28138" Action="Warning" />
    <Rule Id="C28159" Action="Hidden" />  <!-- Consider using *function_name_1* instead of *function_name_2*. -->
    <Rule Id="C28160" Action="Warning" />
    <Rule Id="C28163" Action="Warning" />
    <Rule Id="C28164" Action="Warning" />
    <Rule Id="C28182" Action="Warning" />
    <Rule Id="C28183" Action="Warning" />
    <Rule Id="C28193" Action="Warning" />
    <Rule Id="C28196" Action="Warning" />
    <Rule Id="C28202" Action="Warning" />
    <Rule Id="C28203" Action="Warning" />
    <Rule Id="C28205" Action="Warning" />
    <Rule Id="C28206" Action="Warning" />
    <Rule Id="C28207" Action="Warning" />
    <Rule Id="C28209" Action="Warning" />
    <Rule Id="C28210" Action="Warning" />
    <Rule Id="C28211" Action="Warning" />
    <Rule Id="C28212" Action="Warning" />
    <Rule Id="C28213" Action="Warning" />
    <Rule Id="C28214" Action="Warning" />
    <Rule Id="C28215" Action="Warning" />
    <Rule Id="C28216" Action="Warning" />
    <Rule Id="C28217" Action="Warning" />
    <Rule Id="C28218" Action="Warning" />
    <Rule Id="C28219" Action="Warning" />
    <Rule Id="C28220" Action="Warning" />
    <Rule Id="C28221" Action="Warning" />
    <Rule Id="C28222" Action="Warning" />
    <Rule Id="C28223" Action="Warning" />
    <Rule Id="C28224" Action="Warning" />
    <Rule Id="C28225" Action="Warning" />
    <Rule Id="C28226" Action="Warning" />
    <Rule Id="C28227" Action="Warning" />
    <Rule Id="C28228" Action="Warning" />
    <Rule Id="C28229" Action="Warning" />
    <Rule Id="C28230" Action="Warning" />
    <Rule Id="C28231" Action="Warning" />
    <Rule Id="C28232" Action="Warning" />
    <Rule Id="C28233" Action="Warning" />
    <Rule Id="C28234" Action="Warning" />
    <Rule Id="C28235" Action="Warning" />
    <Rule Id="C28236" Action="Warning" />
    <Rule Id="C28237" Action="Warning" />
    <Rule Id="C28238" Action="Warning" />
    <Rule Id="C28239" Action="Warning" />
    <Rule Id="C28240" Action="Warning" />
    <Rule Id="C28241" Action="Warning" />
    <Rule Id="C28243" Action="Warning" />
    <Rule Id="C28244" Action="Warning" />
    <Rule Id="C28245" Action="Warning" />
    <Rule Id="C28246" Action="Warning" />
    <Rule Id="C28250" Action="Warning" />
    <Rule Id="C28251" Action="Warning" />
    <Rule Id="C28252" Action="Warning" />
    <Rule Id="C28253" Action="Warning" />
    <Rule Id="C28254" Action="Warning" />
    <Rule Id="C28262" Action="Warning" />
    <Rule Id="C28263" Action="Warning" />
    <Rule Id="C28267" Action="Warning" />
    <Rule Id="C28272" Action="Warning" />
    <Rule Id="C28273" Action="Warning" />
    <Rule Id="C28275" Action="Warning" />
    <Rule Id="C28279" Action="Warning" />
    <Rule Id="C28280" Action="Warning" />
    <Rule Id="C28282" Action="Warning" />
    <Rule Id="C28285" Action="Warning" />
    <Rule Id="C28286" Action="Warning" />
    <Rule Id="C28287" Action="Warning" />
    <Rule Id="C28288" Action="Warning" />
    <Rule Id="C28289" Action="Warning" />
    <Rule Id="C28290" Action="Warning" />
    <Rule Id="C28291" Action="Warning" />
    <Rule Id="C28300" Action="Warning" />
    <Rule Id="C28301" Action="Warning" />
    <Rule Id="C28302" Action="Warning" />
    <Rule Id="C28303" Action="Warning" />
    <Rule Id="C28304" Action="Warning" />
    <Rule Id="C28305" Action="Warning" />
    <Rule Id="C28306" Action="Warning" />
    <Rule Id="C28307" Action="Warning" />
    <Rule Id="C28308" Action="Warning" />
    <Rule Id="C28309" Action="Warning" />
    <Rule Id="C28350" Action="Warning" />
    <Rule Id="C28351" Action="Warning" />
    <Rule Id="C33001" Action="Warning" />
    <Rule Id="C33004" Action="Warning" />
    <Rule Id="C33005" Action="Warning" />
    <Rule Id="C33010" Action="Hidden" />  <!-- Unchecked lower bound for enum enum_name used as index. -->
    <Rule Id="C33011" Action="Warning" />
    <Rule Id="C33020" Action="Warning" />
    <Rule Id="C6001" Action="Warning" />
    <Rule Id="C6011" Action="Error" />    <!-- Dereferencing NULL pointer 'pointer-name'. -->
    <Rule Id="C6029" Action="Warning" />
    <Rule Id="C6031" Action="None" />
    <Rule Id="C6053" Action="Warning" />
    <Rule Id="C6054" Action="Warning" />
    <Rule Id="C6059" Action="Warning" />
    <Rule Id="C6063" Action="Warning" />
    <Rule Id="C6064" Action="Warning" />
    <Rule Id="C6066" Action="Warning" />
    <Rule Id="C6067" Action="Warning" />
    <Rule Id="C6101" Action="Warning" />
    <Rule Id="C6200" Action="Warning" />
    <Rule Id="C6201" Action="Warning" />
    <Rule Id="C6214" Action="Warning" />
    <Rule Id="C6215" Action="Warning" />
    <Rule Id="C6216" Action="Warning" />
    <Rule Id="C6217" Action="Warning" />
    <Rule Id="C6220" Action="Warning" />
    <Rule Id="C6226" Action="Warning" />
    <Rule Id="C6230" Action="Warning" />
    <Rule Id="C6235" Action="Warning" />
    <Rule Id="C6236" Action="Warning" />
    <Rule Id="C6237" Action="Warning" />
    <Rule Id="C6242" Action="Warning" />
    <Rule Id="C6248" Action="Warning" />
    <Rule Id="C6250" Action="Warning" />
    <Rule Id="C6255" Action="Warning" />
    <Rule Id="C6258" Action="Warning" />
    <Rule Id="C6259" Action="Warning" />
    <Rule Id="C6260" Action="Warning" />
    <Rule Id="C6262" Action="Warning" />
    <Rule Id="C6263" Action="Warning" />
    <Rule Id="C6268" Action="Warning" />
    <Rule Id="C6269" Action="Warning" />
    <Rule Id="C6270" Action="Warning" />
    <Rule Id="C6271" Action="Warning" />
    <Rule Id="C6272" Action="Warning" />
    <Rule Id="C6273" Action="Warning" />
    <Rule Id="C6274" Action="Warning" />
    <Rule Id="C6276" Action="Warning" />
    <Rule Id="C6277" Action="Warning" />
    <Rule Id="C6278" Action="Warning" />
    <Rule Id="C6279" Action="Warning" />
    <Rule Id="C6280" Action="Warning" />
    <Rule Id="C6281" Action="Warning" />
    <Rule Id="C6282" Action="Warning" />
    <Rule Id="C6283" Action="Warning" />
    <Rule Id="C6284" Action="Warning" />
    <Rule Id="C6285" Action="Warning" />
    <Rule Id="C6286" Action="Warning" />
    <Rule Id="C6287" Action="Hidden" />  <!-- Redundant code: the left and right subexpressions are identical -->
    <Rule Id="C6288" Action="Warning" />
    <Rule Id="C6289" Action="Warning" />
    <Rule Id="C6290" Action="Warning" />
    <Rule Id="C6291" Action="Warning" />
    <Rule Id="C6292" Action="Warning" />
    <Rule Id="C6293" Action="Warning" />
    <Rule Id="C6294" Action="Warning" />
    <Rule Id="C6295" Action="Warning" />
    <Rule Id="C6296" Action="Warning" />
    <Rule Id="C6297" Action="Warning" />
    <Rule Id="C6299" Action="Warning" />
    <Rule Id="C6302" Action="Warning" />
    <Rule Id="C6303" Action="Warning" />
    <Rule Id="C6305" Action="Warning" />
    <Rule Id="C6306" Action="Warning" />
    <Rule Id="C6308" Action="Warning" />
    <Rule Id="C6310" Action="Warning" />
    <Rule Id="C6312" Action="Warning" />
    <Rule Id="C6314" Action="Warning" />
    <Rule Id="C6317" Action="Warning" />
    <Rule Id="C6318" Action="Warning" />
    <Rule Id="C6319" Action="Warning" />
    <Rule Id="C6324" Action="Warning" />
    <Rule Id="C6328" Action="Warning" />
    <Rule Id="C6331" Action="Warning" />
    <Rule Id="C6332" Action="Warning" />
    <Rule Id="C6333" Action="Warning" />
    <Rule Id="C6335" Action="Warning" />
    <Rule Id="C6381" Action="Warning" />
    <Rule Id="C6383" Action="Warning" />
    <Rule Id="C6384" Action="Warning" />
    <Rule Id="C6388" Action="Warning" />
    <Rule Id="C6500" Action="Warning" />
    <Rule Id="C6501" Action="Warning" />
    <Rule Id="C6503" Action="Warning" />
    <Rule Id="C6504" Action="Warning" />
    <Rule Id="C6505" Action="Warning" />
    <Rule Id="C6506" Action="Warning" />
    <Rule Id="C6508" Action="Warning" />
    <Rule Id="C6509" Action="Warning" />
    <Rule Id="C6510" Action="Warning" />
    <Rule Id="C6511" Action="Warning" />
    <Rule Id="C6513" Action="Warning" />
    <Rule Id="C6514" Action="Warning" />
    <Rule Id="C6515" Action="Warning" />
    <Rule Id="C6516" Action="Warning" />
    <Rule Id="C6517" Action="Warning" />
    <Rule Id="C6518" Action="Warning" />
    <Rule Id="C6522" Action="Warning" />
    <Rule Id="C6525" Action="Warning" />
    <Rule Id="C6527" Action="Warning" />
    <Rule Id="C6530" Action="Warning" />
    <Rule Id="C6540" Action="Warning" />
    <Rule Id="C6551" Action="Warning" />
    <Rule Id="C6552" Action="Warning" />
    <Rule Id="C6701" Action="Warning" />
    <Rule Id="C6702" Action="Warning" />
    <Rule Id="C6703" Action="Warning" />
    <Rule Id="C6704" Action="Warning" />
    <Rule Id="C6705" Action="Warning" />
    <Rule Id="C6706" Action="Warning" />
    <Rule Id="C6993" Action="Warning" />
    <Rule Id="C6995" Action="Warning" />
    <Rule Id="C6997" Action="Warning" />
  </Rules>
</RuleSet>