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

Add modern API based on C++26 features

Abierto
#159 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Activo
Stack tecnológico
cpp
Área
api, cli

Línea de trabajo

Start by reviewing the existing public program_options API and the proposed V2 API, including the listed C++26 features and backward-compatibility goal. The issue names no files or tests; the work would be complete only when the V2 API is designed, the implementation is modernized, and the new public API is exposed.

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

Descripción

ITNOA

There have been significant changes from C++03 to C++26 that fundamentally affect API design in C++.

Consequently, I propose designing a new API for program_options based on C++26 best practices.

Key modern C++ features we can leverage include:

  • Modules: For faster build times and cleaner library exposure.
  • Concepts: For improved template metaprogramming and clearer constraints.
  • Contracts: For more robust code and runtime/compile-time assertions.
  • std::optional: For a more declarative API when handling optional values.
  • std::variant & std::any: For type-safe, flexible option storage.
  • Structured Bindings: For a cleaner, more intuitive API when unpacking values.
  • std::span & std::string_view: For zero-copy, high-performance string and array views.
  • std::expected: For modern, expressive error handling instead of exceptions or return codes.
  • Compile-Time Reflection: For smarter, automatic type inference and a significantly cleaner API footprint.

To achieve this, we should redesign the public API in a C++26-native way and modernize the underlying codebase.

To make this actionable, I suggest the following roadmap:

  • Design the V2 API: Create a new, modern API namespace/module separate from the legacy API to maintain backward compatibility.
  • Modernize the Codebase: Migrate the internal implementation details to C++26.
  • Expose the C++26 API: Provide the new public-facing API for modern users.
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.