Estaba viendo la clase std::ratio<>
del estándar C++ 11 que permite hacer aritmética racional en tiempo de compilación.Principios de diseño detrás de std :: ratio <>
Encontré el diseño de la plantilla y las operaciones implementadas con clases demasiado complejas y no encontré ninguna razón por la cual no pudieran usar un enfoque más sencillo e intuitivo implementando una clase racional realmente simple y definiendo las funciones constexpr
para los operadores. El resultado hubiera sido una clase más fácil de usar y las ventajas del tiempo de compilación se habrían mantenido.
¿Alguien tiene alguna idea de las ventajas del diseño actual std::ratio<>
en comparación con una implementación de clase simple utilizando constexpr
? En realidad, no puedo encontrar ninguna ventaja en la implementación actual.
http://www.joelonsoftware.com/articles/fog0000000018.html –
¿No es el tiempo de compilación (por lo tanto, plantillas) frente al tiempo de ejecución? – Drakosha
@Drakosha: 'constexpr' no es una pista; en ciertos contextos (donde se requiere una expresión constante), un compilador * debe * ejecutarlos en tiempo de compilación. –