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

Program options default has unreasonable precision

Abierto
#85 2 comentarios 1 reacción 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
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
cpp
Área
cli

Línea de trabajo

Comienza reproduciendo el formato con la configuración de Boost.Program_options mostrada e inspecciona cómo default_value formatea un double para la descripción de la opción mostrada. Compara el comportamiento con ldecimal.cpp en el proyecto bezitopo enlazado, manteniendo la forma solicitada 0.1 en lugar de .1. Se considera terminado cuando el valor predeterminado se muestra como (=0.1) sin afectar a la salida de otras opciones.

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

Descripción

Source code:

  time_t now,then;
  double tolerance,stageTolerance,areadone,rmsadj;
  bool done=false;
  string inputFile,outputFile;
  bool validArgs,validCmd=true;
  po::options_description generic("Options");
  po::options_description hidden("Hidden options");
  po::options_description cmdline_options;
  po::positional_options_description p;
  po::variables_map vm;
  generic.add_options()
    ("tolerance,t",po::value<double>(&tolerance)->default_value(0.1),"Vertical tolerance")
    ("output,o",po::value<string>(&outputFile),"Output file");
  hidden.add_options()
    ("input",po::value<string>(&inputFile),"Input file");
  p.add("input",1);
  cmdline_options.add(generic).add(hidden);
//...
      cout<<generic;

Output:

  -t [ --tolerance ] arg (=0.10000000000000001)
                                        Vertical tolerance
  -o [ --output ] arg                   Output file

Output should be:

  -t [ --tolerance ] arg (=0.1)         Vertical tolerance
  -o [ --output ] arg                   Output file

I've tried this on Boost 1.65.1 on Ubuntu Beaver, and Boost 1.69.0 on DragonFly BSD 5.5, and got the same result.

For an idea on how to fix it, see ldecimal.cpp in https://github.com/phma/bezitopo, but that would output ".1", not "0.1".

Lenguaje dominante
C++
Estrellas
136
Forks
117
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/program_options

Todos los issues de boostorg/program_options

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.