C++ "именованный параметр идиома" против Boost:: библиотека параметров
Я посмотрел как на именованную идиому параметров , так и на Boost::Parameter library. Какие преимущества имеет каждый из них перед другим? Есть ли веская причина всегда выбирать одно из них вместо другого, или каждый из них может быть лучше другого в некоторых ситуациях (и если да, то в каких ситуациях)?
6 ответов:
Реализовать идиому именованного параметра действительно легко, почти так же легко, как использовать Boost::Parameter, поэтому она сводится к одному главному пункту.
- у вас уже есть зависимости boost? Если вы этого не сделаете, параметр Boost::недостаточно особенный, чтобы заслужить добавление зависимости.
Лично я никогда не видел Boost:: parameter в производственном коде, 100% времени это была пользовательская реализация именованных параметров, но это не обязательно хорошо.
Обычно я большой поклонник Boost, но я бы не стал использовать Boost.Библиотека параметров по нескольким причинам:
- Если вы не знаете, что происходит, вызов выглядит так, как будто вы назначаете значение переменной в области видимости о вызывающей функции ранее делаю звонок. Это может быть очень запутанным.
- существует слишком много шаблонного кода, необходимого для его настройки в первую очередь.
Еще один момент, хотя я никогда не использовал идиому именованных параметров, я использовал параметр Boost для определения до 20 необязательных аргументов. И, мои времена компиляции безумны. То, что раньше занимало пару секунд, теперь занимает 30 сек. это складывается, если у вас есть библиотека вещей, которые используют ваше маленькое приложение, которое вы написали с помощью параметра boost. Конечно, я могу реализовать его неправильно, но я надеюсь, что это изменится, потому что в остальном мне это действительно нравится.
Идиома именованного параметра намного проще. Я не могу понять (прямо сейчас), зачем нам нужна сложность библиотеки параметров Boost::. (Даже предполагаемая "особенность" выведенных параметров, похоже, способ ввести ошибки кодирования;))