boostorg / boostorg/preprocessor

msvc: `BOOST_PP_VARIADIC_SIZE` broken for size larger than 64

Abierto
#42 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
118
Forks
76
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

```
#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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza con boost/preprocessor/variadic/size.hpp y reproduce con MSVC el ejemplo proporcionado de 65 argumentos. Rastrea cómo BOOST_PP_VARIADIC_SIZE gestiona los recuentos de argumentos superiores a 64 y, a continuación, verifica que el ejemplo compile y que su static_assert indique 65.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cpp
Área
compilers
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
52/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.