Подтвердить что ты не робот

С++ "Именованный идентификатор параметра" vs. Boost:: Библиотека параметров

Я посмотрел на Именованный идентификатор параметра и Boost:: Библиотека параметров. Какие преимущества у каждого есть над другим? Есть ли веская причина всегда выбирать один за другим, или каждый из них может быть лучше другого в некоторых ситуациях (и если да, то какие ситуации)?

4b9b3361

Ответ 1

Реализация Именованного Иерархического Параметра действительно очень просто, почти так же просто, как использование Boost:: Parameter, поэтому это сводится к одной основной точке.

- У вас уже есть зависимости от boost? Если вы этого не сделаете, параметр Boost:: не является достаточно специальным, чтобы заслужить добавление зависимости.

Лично я никогда не видел Boost:: parameter в производственном коде, в 100% случаев это была пользовательская реализация Именованных параметров, но это не всегда хорошо.

Ответ 2

Обычно я большой поклонник Boost, но я бы не использовал библиотеку Boost.Parameter по нескольким причинам:

  • Если вы не знаете, что происходит, вызов выглядит так, как будто вы назначаете значение переменной в области по вызывающей функции до делая вызов. Это может быть очень запутанным.
  • Слишком много кода шаблона, необходимого для его настройки в первую очередь.

Ответ 3

Еще один момент, в то время как я никогда не использовал Именованный Идентификатор Параметра, я использовал параметр Boost Parameter для определения до 20 необязательных аргументов. И время моего компиляции безумно. То, что раньше занимало пару секунд, теперь занимает 30 секунд. Это добавляется, если у вас есть библиотека вещей, которые используют одно небольшое приложение, которое вы написали с помощью параметра boost. Конечно, я мог бы ошибочно внедрить его, но я надеюсь, что это изменится, потому что, кроме этого, мне это очень нравится.

Ответ 4

Именованный Именованный Параметр является более простым. Я не вижу (прямо сейчас), почему нам нужна сложность библиотеки Boost:: Parameter. (Даже предполагаемая "функция" Выведенные параметры, похоже, способ ввести ошибки кодирования;))

Ответ 5

Вероятно, вы не хотите Boost.Parameter для общей логики приложения столько, сколько захотите, для кода библиотеки, который вы разрабатываете, где это может быть довольно экономичным временем для клиентов библиотеки.

Ответ 6

Никогда не слышал об этом, но просмотр ссылок, названный параметр WAY проще и понятнее. Я бы выбрал его в мгновение ока в результате ускорения.