【发布时间】:2011-08-28 05:14:39
【问题描述】:
这是我的问题。我只是好奇关于限制可以传递给通用函数或类的类型的共识是什么。我想我在某个时候读过,如果你在做泛型编程,通常最好让事情保持开放而不是试图关闭它们(不记得源代码)。
我正在编写一个具有一些内部通用函数的库,我认为它们应该只允许库中的类型与它们一起使用,因为这就是我要使用它们的意思。另一方面,我不确定我为锁定事物所做的努力是否值得。
有人可能有一些关于这个话题的统计资料或权威评论的来源吗?我也对合理的意见感兴趣。希望这不会使这个问题完全无效:\
此外,SO 上是否有任何等同于“最佳实践”的标签?我没有具体看到那个,但能够为给定的 SO 主题提供所有最佳实践信息似乎会有所帮助......也许不是,只是一个想法。
编辑:到目前为止,一个答案提到我正在做的图书馆类型将很重要。它是一个数据库库,最终与 STL 容器、可变参数(元组)、Boost Fusion 以及类似的东西一起工作。我可以看到这有什么关系,但我也对决定走哪条路的经验法则感兴趣。
【问题讨论】:
-
“如果你在做泛型编程,通常最好让事物保持开放而不是试图关闭它们”:这是非常值得商榷的。但是,由于 C++ 人认为概念在未来几年(几十年?)内不会成为该语言的一部分,因此与远程尝试关闭它们相比,让事物保持开放更方便。
-
@Alexandre 我想知道什么时候会提到概念:(
标签: c++ templates boost c++11 generic-programming