【发布时间】:2014-06-18 08:53:08
【问题描述】:
我知道有很多关于模板默认参数语法的问题。
通常,答案(与我对它应该如何工作的理解同步)是使用类似的东西:
template <class T = SomeDefault> class T1 {};
最近我想检查 Boost 在其mapped_vector 中使用了哪个地图实现。并找到如下sn-p:
template<class T, class A>
class mapped_vector:
显然,参数A 没有默认绑定,但显然,我可以实例化mapped_vector<int> 就好了。显然,默认参数是以某种方式推断出来的,但是如何推断?
编辑:确切地说,我说的是this file中的第279行
【问题讨论】:
-
这个类模板可以在定义之前用实际的默认模板参数声明
-
默认参数可能在某些标头的声明中分配。
-
见here
-
谢谢。不,至少我看到了声明。您能否回答一下这究竟是如何以及为什么起作用的?
标签: c++ templates default-arguments