Il C++20 è come un tornio a controllo numerico di ultima generazione: più potente, più sicuro e incredibilmente preciso. In bottega, adottiamo le nuove feature per scrivere codice espressivo e performante.
Dimentica gli errori indecifrabili dei template. Con i Concepts, definiamo esattamente cosa un tipo può o non può fare.
#include <concepts>
#include <iostream>
// Definiamo cosa intendiamo per un materiale lavorabile
template <typename T>
concept Workable = requires(T v) {
{ v.process() } -> std::same_as<void>;
{ v.get_hardness() } -> std::convertible_to<float>;
};
template <Workable T>
void workshop_task(T material) {
material.process();
std::cout << "Material hardness: " << material.get_hardness() << "\n";
}
std::format: La fine della verbosità di iostream. Gestione delle stringhe stile Python ma con performance C++.