Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

irange makes non-emtpy ranges when first is greater than last

Abierto
#76 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

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

Línea de trabajo

Comienza en irange.hpp, en las aserciones alrededor de las líneas 210 y 219, y luego inspecciona los casos existentes de test_irange. Verifica que las llamadas indicadas produzcan rangos vacíos sin iterar, y añade o actualiza las pruebas para que estos casos se completen con cero iteraciones.

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

Descripción

the simple example irange(-5) I would expect to be an empty range, i.e.

int32_t end   = -5;
int64_t count = 0;
for (int32_t i = 0; i < end; ++i)
    // this line will never be reached
    ++count;
std::cout << count << std::endl; // 0

count = 0;
for (auto i : boost::irange(end))
    // this should never be reached, but it will 
    // iterate past int32_t max until it reaches -5
    ++count;
std::cout << count << std::endl; // 4294967291

My expectations is the following tests should pass with no iterations, but many fail on asserts in the test but will be large ranges in release

test_irange(-5);
test_irange(0, -5); // this fails on assert at irange.hpp#L210
test_irange(5, 10, -1); // this fails on assert at irange.hpp#L219
test_irange(10, 5, 1); // this fails on assert at irange.hpp#L219
Lenguaje dominante
C++
Estrellas
45
Forks
104
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

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

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de boostorg/range

Todos los issues de boostorg/range

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.