C ++“命名参数成语”与Boost ::参数库

时间:2008-10-15 03:46:57

标签: c++ named-parameters boost-parameter

我查看了Named Parameter IdiomBoost::Parameter library。每个人有什么优势?是否有充分的理由总是选择其中一个,或者在某些情况下每个人都可能比另一个更好(如果是这样,在什么情况下)?

6 个答案:

答案 0 :(得分:20)

实现命名参数成语非常简单,几乎和使用Boost :: Parameter一样简单,所以它归结为一个主要观点。

- 你有增强依赖吗?如果不这样做,Boost ::参数就不够特别,不值得添加依赖项。

我个人从未在生产代码中看到过Boost ::参数,100%的时候它是命名参数的自定义实现,但这不一定是件好事。

答案 1 :(得分:16)

通常情况下,我是Boost的忠实粉丝,但由于以下几个原因,我不会使用Boost.Parameter库:

  1. 如果你不知道发生了什么, 电话看起来像你正在分配 范围中变量的值 在调用函数之前 打电话。那可能非常 混乱。
  2. 首先需要设置太多的样板代码才能进行设置。

答案 2 :(得分:9)

另一点,虽然我从未使用过命名参数成语,但我使用了Boost参数来定义最多20个可选参数。而且,我的编译时间很疯狂。过去需要几秒钟,现在需要30秒。如果你有一个使用你使用boost参数编写的一个小应用程序的东西库,这就加起来了。当然,我可能会错误地实现它,但我希望这会改变,因为除此之外,我真的很喜欢它。

答案 3 :(得分:2)

命名参数习惯用法简单得多。我不能(现在)看到为什么我们需要Boost :: Parameter库的复杂性。 (即使是假定的“特征”推导参数,似乎是一种引入编码错误的方法;))

答案 4 :(得分:2)

您可能不希望Boost.Parameter用于一般应用程序逻辑,就像您希望它为您正在开发的库代码所需要的那样,它可以为库的客户节省大量时间。

答案 5 :(得分:0)

从未听说过,但是查看链接,命名参数更容易理解。我会在激励实现的心跳中选择它。