En Python, los argumentos con nombre (keyword arguments) permiten escribir APIs claras y concisas. En C++ no existe esta característica de forma nativa, y añadirla requeriría décadas de esfuerzo normativo. Sin embargo, con las prestaciones modernas del lenguaje es posible emularla de manera bastante convincente. La técnica consiste en definir una función que toma un único argumento de tipo estructura (struct) y emplear inicializadores designados (designated initializers) para asignar valores a campos concretos. Los campos no especificados toman valores por defecto. De esta forma, la llamada se ve así: func({.arg1=valor1, .arg2=valor2}). Aunque requiere ‘cerrar un ojo’ con las llaves adicionales, el resultado es un código casi tan legible como el de Python. Existen intentos previos con macros y plantillas (como la biblioteca Boost.Parameter), pero no han tenido gran adopción. La solución aquí presentada es ligera y aprovecha características de C++20, sin recurrir a magia preprocesadora excesiva.
