boostorg / boostorg/preprocessor

Minor feature request: BOOST_PP_IGNORE or update docs for BOOST_PP_EMPTY

Open
#45 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
118
Forks
76
PR merge metrics
No merged PRs in 30d

Description

The current `BOOST_PP_EMPTY()` is not variadic, so its usefulness in `BOOST_PP_IF()` and the like is limited to when there are no arguments/params in the resultant call.

For example, this doesn't work:
```
#define X(a, b) result(a, b)
#define MACRO(a, b, c) BOOST_PP_IF(c, X, BOOST_PP_EMPTY)(a, b)
```

As explained in #34, changing the signature of `BOOST_PP_EMPTY()` is impractical, and another solution exists: `BOOST_VMD_EMPTY(...)` in `boost/vmd/empty.hpp`.

So this is a very minor issue, but it would be nice if either:
1. There were a `BOOST_PP_IGNORE(...)` to do this, or...
2. The reference docs for the `BOOST_PP_EMPTY` could also point to the VMD macro to use instead.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the BOOST_PP_EMPTY reference documentation and compare its limitations with boost/vmd/empty.hpp, where BOOST_VMD_EMPTY(...) is mentioned as an existing alternative. Read #34 for the context behind the signature constraint. Done means either documenting the alternative in the BOOST_PP_EMPTY reference or adding the requested BOOST_PP_IGNORE(...) behavior, with the chosen approach clearly covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Feature
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.