boostorg / boostorg/preprocessor
msvc: `BOOST_PP_VARIADIC_SIZE` broken for size larger than 64
- Vorherrschende Sprache
- C++
- Sterne
- 118
- Forks
- 76
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
```
#define BOOST_PP_LIMIT_VARIADIC 256
#include
#include
#define VAR_DATA a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, b, b, b, b
constexpr size_t sz = BOOST_PP_VARIADIC_SIZE(VAR_DATA);
static_assert(sz == 65);
```
gives:
```
(9): error C2065: 'b': undeclared identifier
(9): error C2131: expression did not evaluate to a constant
(9): note: a non-constant (sub-)expression was encountered
(11): error C2131: expression did not evaluate to a constant
(9): note: a non-constant (sub-)expression was encountered
```
compare: https://godbolt.org/z/bfoETMnad
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginnen Sie mit boost/preprocessor/variadic/size.hpp und reproduzieren Sie das bereitgestellte Beispiel mit 65 Argumenten mit MSVC. Verfolgen Sie, wie BOOST_PP_VARIADIC_SIZE Argumentanzahlen über 64 verarbeitet, und überprüfen Sie anschließend, dass das Beispiel kompiliert und sein static_assert 65 meldet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 52/100