﻿<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="C++ Core Check Lifetime Rules" Description="These rules enforce the Lifetime profile of the C++ Core Guidelines (http://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#prolifetime-lifetime-safety-profile)." ToolsVersion="15.0">
  <Localization ResourceAssembly="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.dll" ResourceBaseName="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.Localized">
    <Name Resource="CppCoreCheckLifetimeRules_Name" />
    <Description Resource="CppCoreCheckLifetimeRules_Description" />
  </Localization>
  <Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
    <!-- Low-confidence lifetimes warnings -->
    <!-- Noisy unless strict coding style is followed. Uncomment to enable.
    <Rule Id="C26486" Action="Warning" />
    <Rule Id="C26487" Action="Warning" />
    <Rule Id="C26488" Action="Warning" />
    <Rule Id="C26489" Action="Warning" />
    -->
    <!-- Use after move warnings -->
    <Rule Id="c26800" Action="Warning" />
    <!-- Coroutines warnings -->
    <Rule Id="c26810" Action="Warning" />
    <Rule Id="c26811" Action="Warning" />
    <!-- Nullptr dereference warnings -->
    <Rule Id="C26822" Action="Warning" />
    <Rule Id="C26823" Action="Warning" />
    <Rule Id="C26824" Action="Warning" />
    <Rule Id="C26825" Action="Warning" />
    <!-- Empty optional unwrap warnings -->
    <Rule Id="C26829" Action="Warning" />
    <Rule Id="C26830" Action="Warning" />
    <Rule Id="C26859" Action="Warning" />
    <Rule Id="C26860" Action="Warning" />
    <!-- High-confidence lifetimes warnings -->
    <Rule Id="C26846" Action="Warning" />
    <Rule Id="C26847" Action="Warning" />
    <Rule Id="C26848" Action="Warning" />
    <Rule Id="C26849" Action="Warning" />
  </Rules>
</RuleSet>
