C++Clang-Tidy提示:“Clang-Tidy: Potential uncovered code path; add a default label”的解决方案

Posted songyuc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++Clang-Tidy提示:“Clang-Tidy: Potential uncovered code path; add a default label”的解决方案相关的知识,希望对你有一定的参考价值。

1 问题描述

今天在使用switch语句时,Clang-Tidy提示了这样一个信息:

Clang-Tidy: Potential uncovered code path; add a default label

它表示,函数中可能存在未被覆盖的路径;

2 问题分析

我们使用函数的伪代码图如下:

Room *getEventRoom(int id) 
    switch (id) 
        case 0:
            return new Campsite;
        case 1:
            return new RegularRoom;
        case 2:
            return new TrapRoom;
    
    // no returning value in other cases

分析可知,如果id不属于[0,1,2]的时候,就会出现没有传送返回值的情况;

3 解决方案

其实 Clang-Tidy 在提示中已经给出了解决方案,也就是加粗的部分:

Clang-Tidy: Potential uncovered code path; add a default label

也就是说,我们需要在switch语句中加入default分支,以覆盖所有可能的情况;

以上是关于C++Clang-Tidy提示:“Clang-Tidy: Potential uncovered code path; add a default label”的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

深入研究Clang(十四) clang-tidy的使用

如何转储 CLion 的默认 clang-tidy 配置?

安装后没有找到Clang-Tidy

深入研究Clang(十三) clang-tidy简介

使用 MSVC2015 在 Windows 上进行 clang-tidy

如何在 Visual Studio 和 CMake 中使用 clang-tidy?