我查看了Named Parameter Idiom和Boost::Parameter library。每个人有什么优势?是否有充分的理由总是选择其中一个,或者在某些情况下每个人都可能比另一个更好(如果是这样,在什么情况下)?
答案 0 :(得分:20)
实现命名参数成语非常简单,几乎和使用Boost :: Parameter一样简单,所以它归结为一个主要观点。
- 你有增强依赖吗?如果不这样做,Boost ::参数就不够特别,不值得添加依赖项。
我个人从未在生产代码中看到过Boost ::参数,100%的时候它是命名参数的自定义实现,但这不一定是件好事。
答案 1 :(得分:16)
通常情况下,我是Boost的忠实粉丝,但由于以下几个原因,我不会使用Boost.Parameter库:
答案 2 :(得分:9)
另一点,虽然我从未使用过命名参数成语,但我使用了Boost参数来定义最多20个可选参数。而且,我的编译时间很疯狂。过去需要几秒钟,现在需要30秒。如果你有一个使用你使用boost参数编写的一个小应用程序的东西库,这就加起来了。当然,我可能会错误地实现它,但我希望这会改变,因为除此之外,我真的很喜欢它。
答案 3 :(得分:2)
命名参数习惯用法简单得多。我不能(现在)看到为什么我们需要Boost :: Parameter库的复杂性。 (即使是假定的“特征”推导参数,似乎是一种引入编码错误的方法;))
答案 4 :(得分:2)
您可能不希望Boost.Parameter用于一般应用程序逻辑,就像您希望它为您正在开发的库代码所需要的那样,它可以为库的客户节省大量时间。
答案 5 :(得分:0)
从未听说过,但是查看链接,命名参数更容易理解。我会在激励实现的心跳中选择它。