Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

variadic min/max/minmax

Offen
#119 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
cpp
Bereich
tooling

Rechercherichtung

Beginne mit dem angehängten minmax_variadic.hpp.txt-Vorschlag und untersuche die bestehenden min-, max- und minmax-Einstiegspunkte in Boost.Algorithm. Kläre das Design des Comparator-Parameters und bestimme das erwartete Verhalten für referenzbasierte Argumente und minmax-Vergleiche. Die Aufgabe ist abgeschlossen, wenn die variadic APIs in das Projekt integriert sind und ihr Verhalten durch geeignete Tests abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Hello,
for min/max/minmax with multiple parameters there are only functions per std::initializer_list:
https://en.cppreference.com/w/cpp/algorithm/min
https://en.cppreference.com/w/cpp/algorithm/max
https://en.cppreference.com/w/cpp/algorithm/minmax
The parameters are always passed by value and not by reference and the result is also a value. This is a problem with types like std::array, std::string, etc.

Since the compare class cannot be the last function parameter in a variadic implementation (as in the std implementations) another position must be found, possibilities:

  • first function parameter: 2 implementations would be needed each, once with compare class and once without. I don't find that useful.
  • first template parameter: only one implementation is needed with default template parameter(s).

A simple variadic implementation could look like this:
minmax_variadic.hpp.txt

minmax needs 2 compare classes (each for min and max) - this is more flexible.

thx
Gero

Vorherrschende Sprache
C++
Sterne
131
Forks
117
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus boostorg/algorithm

Alle Issues in boostorg/algorithm

Ähnliche Issues

Weitere Issues zu C++

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.