Guillaume Belz

Les nouveautés envisagées pour C++26

Quelques fonctionnalités majeures du projet C++26, avec des exemples courts.

Réflexion statique

La réflexion permet d’inspecter les types à la compilation et de générer du code. Ici, une énumération est convertie en son nom :

template<class E>
constexpr std::string enum_to_string(E value) {
    template for (constexpr auto e : std::meta::enumerators_of(^^E)) {
        if (value == [:e:])
            return std::string(std::meta::identifier_of(e));
    }
    return "<unknown>";
}

Code complet · Réflexion P2996 · Expansion P1306

Contrats

Une précondition documente et vérifie une condition requise avant l’appel :

int divide(int numerator, int denominator)
    pre (denominator != 0)
{
    return numerator / denominator;
}

Code complet · Proposition P2900

Conteneur à capacité fixe

std::inplace_vector peut grandir jusqu’à sa capacité sans allocation dynamique :

std::inplace_vector<int, 3> samples;
samples.push_back(4);
samples.push_back(9);
std::cout << samples[1] << '\n'; // 9

Code complet · Référence

Exécution asynchrone

std::execution compose un travail et son résultat avec des senders :

auto work = std::execution::just(20)
          | std::execution::then([](int value) { return value * 2; });
auto [result] = std::this_thread::sync_wait(std::move(work)).value();

Code complet · Proposition P2300

Autres ajouts

Statut et compilation

Le projet C++26 a été rejeté au vote ISO d’octobre 2026 ; ces fonctionnalités restent donc susceptibles d’évoluer. Les exemples sont illustratifs : Apple Clang 21.0.0, testé avec clang++ -std=c++2c -fsyntax-only, ne prend pas en charge les fonctionnalités ou bibliothèques nécessaires. Ils n’ont pas pu être compilés avec cet environnement.

Liste des fonctionnalités C++26

Communauté francophone

C++FrUG (C++ French User Group) est un lieu d’échange sur les évolutions futures du C++. La communauté compte des personnes impliquées dans le comité de standardisation.

Rejoindre C++FrUG sur Discord.

Historique des mises à jour