J'ai regardé les deux le Paramètre Nommé Idiome et le Boost::Paramètre de la bibliothèque. Quels sont les avantages de chacun sur les autres? Est-il une bonne raison de choisir l'un sur l'autre, ou peut-chacun d'entre eux peut être mieux que les autres dans certaines situations (et si oui, quelles sont les situations)?
Réponses
Trop de publicités?La mise en œuvre de Paramètre Nommé Idiome est vraiment facile, presque aussi facile que d'utiliser Boost::Paramètre, donc ça se résume à un point principal.
-Avez-vous déjà boost dépendances? Si vous ne le faites pas, Boost::le paramètre n'est pas assez spécial pour le mérite de l'ajout de la dépendance.
Personnellement je n'ai jamais vu Boost::paramètre dans le code de production, 100% du temps sa fait une implémentation personnalisée de Paramètres Nommés, mais ce n'est pas nécessairement une bonne chose.
Normalement, je suis un grand fan de Boost, mais je ne voudrais pas utiliser le Boost.Paramètre de la bibliothèque pour un couple de raisons:
- Si vous ne savez pas de quoi il en retourne l'appel dirait que vous êtes l'attribution une valeur à une variable dans la portée sur la fonction d'appel avant de faire l'appel. Qui peut être très source de confusion.
- Il y a trop de code réutilisable nécessaire de le configurer en premier lieu.
Un autre point, bien que je n'ai jamais utilisé le Paramètre Nommé Idiome, j'ai utilisé Boost Paramètre pour définir jusqu'à 20 arguments optionnels. Et, mon temps de compilation sont fous. Ce qui permet de prendre une couple de secondes, maintenant prend 30sec. Cela fait si vous avez une bibliothèque de trucs que l'utilisation de votre une petite application que vous avez écrit à l'aide de boost paramètre. Bien sûr, je pourrais peut être mise en œuvre à tort, mais j'espère que cela change, en raison autre que cela, je l'aime vraiment.
Le Paramètre Nommé idiome est BEAUCOUP plus simple. Je ne peux pas voir (dès maintenant) pourquoi nous avons besoin de la complexité de la Boost::Paramètre de la bibliothèque. (Même la prétendue "fonctionnalité" de Déduire les paramètres, apparaît comme un moyen d'introduire des erreurs de codage ;) )