He visto tanto el Named Parameter Idiom como el Boost::Parameter library. ¿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)?C++ "Parámetro idiomático con nombre" vs. Boost :: Biblioteca de parámetros
Respuesta
Implementación del parámetro designado Idiom 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 nombrados, pero eso no es necesariamente algo bueno.
Gracias. Ya tengo dependencias de Boost, pero en su lugar iré con los parámetros nombrados. –
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 de la "característica" supuesta, parecen una forma de introducir errores de codificación;))
Normalmente, soy un gran admirador de Boost, pero no usaría la biblioteca Boost.Parameter para un par de razones:
- Si usted no sabe lo que está pasando, la llamada parece que estás asignando un valor a una variable en el ámbito en la función de llamada antes de hacer la llamada. Eso puede ser muy confuso.
- En primer lugar, es necesario un código repetitivo para configurarlo.
Con este mismo razonamiento, debemos eliminar plantillas de C++ porque son complejas y confusas. Se llama "aprendizaje" – Raindog
Las plantillas agregan una gran cantidad de poder al idioma. No creo que puedas decir lo mismo sobre los parámetros nombrados. El hecho de que algo sea complejo no significa que sea útil. – Ferruccio
Probablemente no desee Boost.Parameter para la lógica de la aplicación general tanto como lo desearía para el código de la biblioteca que está desarrollando, donde puede ahorrar bastante tiempo para 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.
- 1. regex: boost :: xpressive vs boost :: regex
- 2. boost :: tokenizer vs boost :: split
- 3. Cómo aprender a escribir código C++ idiomático
- 4. decaf threads vs boost threads vs omnithreads
- 5. Intel TBB vs Boost
- 6. Cómo usar la biblioteca C++ Boost con pkg-config?
- 7. parámetros con el mismo nombre
- 8. C++ vs. C++/CLI: calificación Const de función virtual Parámetros
- 9. idiomático IO con Scala
- 10. boost :: lock_guard vs boost :: mutex :: scoped_lock
- 11. PThread vs boost :: thread?
- 12. boost vs ACE C++ Comparación de rendimiento de plataforma cruzada?
- 13. Parámetros con nombre de Ocaml
- 14. ACE vs Boost vs Poco vs wxWidgets
- 15. ¿Diferencias entre cómo C# y VB manejan parámetros con nombre?
- 16. boost interprocess mutex vs boost hilo mutex
- 17. Parámetros con y sin argumentos en boost :: opciones_programa
- 18. Boost Jam vs Jam
- 19. java.util.concurrent vs. Boost Threads library
- 20. C# Ejecute un procedimiento sin especificar un nombre de parámetro
- 21. Parámetros con nombre en JDBC
- 22. C# Paso tipo de referencia directamente vs parámetro out
- 23. Combinación de una biblioteca de álgebra lineal con Boost :: Unidades
- 24. Vinculación de la biblioteca C con nombre no estándar
- 25. Pasar una función (con parámetros) como parámetro?
- 26. Pasar una función con parámetros como parámetro?
- 27. Building Boost con el compilador LSB C++
- 28. nhibernate hql con parámetro con nombre
- 29. C# parámetros a una cadena que reemplace al parámetro nombre valora
- 30. C++ extraña sintaxis visto en la plantilla Boost parámetros
No tenía idea sobre ninguno de los dos. Solo los he pasado a los dos. Gracias Geek –
No es suficiente para la respuesta: un código que usa 'Boost :: Parameter' siempre incorpora una transformación implícita no comprobable, +1 al idioma del parámetro nombrado – bobah
¿Alguien puede agregar un enlace a una página funcional de" idioma de parámetro nombrado "? – xaxxon