boostorg / boostorg/function_types

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

Open
#16 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
9
Forks
42
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with preprocessed.hpp and the BOOST_FT_ell macro, then trace how it is generated and used in cases with and without preceding arguments. Verify the result in C++26 mode and confirm that the deprecated-variadic-comma-omission warning is no longer produced.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.