Dav*_*ams 2 c++ parameters templates stl default
在我的代码中,我采用的设计策略类似于一些标准库算法,因为确切的行为可以由函数对象定制.最简单的例子是std :: sort,其中函数对象可以控制如何在对象之间进行比较.
我注意到Visual C++提供了std :: sort的两个实现,这自然涉及代码重复.我本以为可能只有一个实现,并提供默认比较器(使用operator <)作为默认模板参数.
两个独立版本背后的理性是什么?我的建议会以某种方式使界面更复杂吗?或者当对象不提供运算符<?时导致混淆错误消息 或者它可能只是不起作用?
谢谢,
大卫
Set*_*gie 12
因为标准不允许函数模板具有默认类型参数.
然而,这在C++ 11中进行了修改,现在函数模板可以具有默认类型参数.
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |