我查看了Named Parameter Idiom和Boost :: Parameter库.每个人有什么优势?是否有充分的理由总是选择其中一个,或者在某些情况下每个人都可能比另一个好(如果是的话,在什么情况下)?
实现命名参数成语非常简单,几乎和使用Boost :: Parameter一样简单,因此可归结为一个主要观点.
- 你有增强依赖吗?如果不这样做,Boost ::参数不够特别,不值得添加依赖项.
就个人而言,我从未在生产代码中看到过Boost ::参数,100%的时候它是命名参数的自定义实现,但这不一定是件好事.
通常,我是Boost的忠实粉丝,但我不会使用Boost.Parameter库有以下几个原因:
如果您不知道发生了什么,那么调用看起来就像是在调用函数之前为调用函数的作用域中的变量赋值.这可能非常令人困惑.
首先需要设置太多的样板代码才能进行设置.
另一点,虽然我从未使用过命名参数成语,但我使用了Boost参数来定义最多20个可选参数.而且,我的编译时间很疯狂.过去需要几秒钟,现在需要30秒.如果你有一个使用你使用boost参数编写的一个小应用程序的东西库,这就加起来了.当然,我可能会错误地实现它,但我希望这会改变,因为除此之外,我真的很喜欢它.