Pregunta

He visto tanto el Idioma de parámetro con nombre y el Boost :: Biblioteca de parámetros . ¿Qué ventajas tiene cada uno sobre el otro? ¿Hay una buena razón para elegir siempre una sobre la otra, o podría ser mejor que la otra en algunas situaciones (y si es así, qué situaciones)?

¿Fue útil?

Solución

Implementar el idioma de parámetros con nombre 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 merecer agregar la dependencia.

Personalmente, nunca he visto el parámetro Boost :: en el código de producción, el 100% del tiempo ha sido una implementación personalizada de Parámetros con nombre, pero eso no es necesariamente algo bueno.

Otros consejos

Normalmente, soy un gran admirador de Boost, pero no usaría la biblioteca Boost.Parameter por un par de razones:

  1. Si no sabes lo que está pasando, la llamada parece que estás asignando un valor para una variable en el alcance en la función de llamada antes haciendo la llamada. Eso puede ser muy confuso.
  2. Hay demasiado código repetitivo necesario para configurarlo en primer lugar.

Otro punto, si bien nunca he usado el idioma de parámetros con nombre, he usado el parámetro Boost 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 toma 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 implementando incorrectamente, pero espero que esto cambie, porque aparte de eso, realmente me gusta.

El idioma del parámetro con nombre es MUCHO más simple. No puedo ver (en este momento) por qué necesitaríamos la complejidad de la biblioteca Boost :: Parameter. (Incluso la supuesta "característica" Parámetros deducidos, parece una forma de introducir errores de codificación;))

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.

Nunca he oído hablar de ninguno de los dos, pero revisar los enlaces, el parámetro con nombre 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top