boostorg / boostorg/function

switch missing default label warning under clang

未关闭
#56 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
C++
星标
26
派生
58
PR 合并指标
30 天内没有已合并 PR

描述

When compiling under clang 19.1.7 with werror and a number of other flags (we run with most warnings enabled), the line https://github.com/boostorg/function/blob/develop/include/boost/function/function_base.hpp#L147 is flagged with `error: switch missing default label [-Werror,-Wswitch-default]`. Given this is based on the enum at https://github.com/boostorg/function/blob/f6b538dbed2e3047dcbd09eb3f5c7f1ffa90d0a9/include/boost/function/function_base.hpp#L105 and all cases are handled a pr has not been provided at this time. I see two approaches, one is doing a compiler warning suppression and the other is adding the default label with a throw or similar as it should be an unreachable place based on the current code. The suppression seems like the simpler answer but may cause a future update to the enum to be missed here while the throw would prevent that at the cost of potentially changing behavior if something is flagged nothrow. Happy to submit a PR but would need guidance no how it should be approached here.

Env:
Alma 9.6
Boost 1.88.0 via cmake
clang 19.1.7

贡献指南

这个仓库没有索引到贡献指南

调研方向

阅读 include/boost/function/function_base.hpp 中第 105 行附近的 enum 和第 147 行的 switch,然后使用 clang 19.1.7 及报告中的警告标志重现该警告。在选择抑制还是添加 default case 之前,先查看项目指南;当报告的 -Wswitch-default 错误不再出现且没有引入非预期的行为变化时,即可认为该 issue 已完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
cpp
领域
compilers
Issue 类型
缺陷
难度
2/5
预计耗时
1-3 小时
活跃度
停滞
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。