boostorg / boostorg/function_types

"..." ellipsis operator is generating warnings in C++ >= 26: -Wdeprecated-variadic-comma-omission

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

描述

In C++26, it's now deprecated to use constructions like:

```
void f(int...)
```

we should explicitly add a comma between the previous arguments and the ellipsis:

```
void f(int, ...)
```

In practice, Boost function_types generate quite some warnings in C++26 mode, here is one of them:

```
/data/mwrep/res/osp/Boost/25-0-0-0/include/boost/function_types/detail/pp_variate_loop/preprocessed.hpp:135:23: error: omission of ',' before varargs '...' is deprecated in C++26 [-Werror=deprecated-variadic-comma-omission]
135 | # define BOOST_FT_ell ...
```

Since BOOST_FT_ell is sometimes used as the only argument, it's not as easy as just adding a comma at the beginning of BOOST_FT_ell, as there should be a special case for when there is no argument before.

I don't know much about Boost.wave, so I am not sure how to propose a fix here.

贡献指南

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

调研方向

从 preprocessed.hpp 和 BOOST_FT_ell 宏开始,然后追踪它在有前置参数和没有前置参数的情况下是如何生成和使用的。在 C++26 模式下验证结果,并确认不再产生 deprecated-variadic-comma-omission 警告。

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

评估

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

把新 issue 发到你的邮箱

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