C++ "Named Parameter Idiom" vs. Boost:: Biblioteca de parámetros
named-parameters boost-parameter (6)
La implementación de la expresión de parámetros nombrados es realmente fácil, casi tan fácil como usar Boost :: Parameter, por lo que se reduce a un punto principal.
-¿Ya tienes dependencias de impulso? Si no lo hace, el parámetro Boost :: no es lo suficientemente especial como para agregar la dependencia.
Personalmente, nunca he visto el parámetro Boost :: en el código de producción, el 100% de las veces se trata de una implementación personalizada de Parámetros con nombre, pero eso no es necesariamente algo bueno.
He visto tanto el idioma de parámetros nominales como la biblioteca de parámetros Boost :: . ¿Qué ventajas tiene cada uno sobre el otro? ¿Hay alguna buena razón para elegir siempre una sobre la otra, o podría ser que cada una de ellas sea mejor que la otra en algunas situaciones (y si es así, en qué situaciones)?
Nunca he oído hablar de ninguno, pero revisar los enlaces, el parámetro nombrado es MUCHO más fácil y más obvio de entender. Lo elegiría en un abrir y cerrar de ojos sobre la implementación de impulso.
La expresión de Parámetros Nombrados es MUCHO más simple. No puedo ver (ahora mismo) por qué necesitaríamos la complejidad de la biblioteca Boost :: Parameter. (Incluso los parámetros Deducidos supuestos "características", parece una forma de introducir errores de codificación;))
Normalmente, soy un gran admirador de Boost, pero no utilizaría la biblioteca Boost.Parameter por un par de razones:
- Si no sabe lo que está sucediendo, la llamada parece que está asignando un valor a una variable en el alcance de la función de llamada antes de realizar la llamada. Eso puede ser muy confuso.
- En primer lugar, es necesario un código repetitivo para configurarlo.
Probablemente no desee Boost.Parameter para la lógica general de la aplicación tanto como lo desearía para el código de la biblioteca que está desarrollando, donde puede ahorrar bastante tiempo a los clientes de la biblioteca.
Otro punto, aunque nunca he usado Named Parameter Idiom, he usado Boost Parameter para definir hasta 20 argumentos opcionales. Y, mis tiempos de compilación son una locura. Lo que solía tomar un par de segundos, ahora lleva 30 segundos. Esto se suma si tienes una biblioteca de cosas que usan tu pequeña aplicación que escribiste usando el parámetro boost. Por supuesto, podría estar implementándolo incorrectamente, pero espero que esto cambie, porque aparte de eso, realmente me gusta.