0
虽然经历的Alexander Stepanov原始STL逻辑的理解(标准模板库)的源代码,我遇到从存储器分配器功能文件中:defalloc.h的“构建体”在原始STL实现方法在C++
template <class T1, class T2>
inline void construct(T1* p, const T2& value) {
new (p) T1(value);
}
我不能完全理解,并有以下问题/疑虑:
- 在我看来,它有事情做与
T1
类型的拷贝构造函数? - 为什么上面的函数是两种类型的模板
T1
&T2
?它应该是第一个T1*
,第二个(值)应该是*T1
。 - 为什么
new
已经用在上面的逻辑中?我看着它的用途和发现因此,基于上述文件vector.h
void push_back(const T& x) { if (finish != end_of_storage) { construct(finish, x); .... .... }
以下,光洁度已经收购了存储和被传递到它。另一个参数是x,它是同一类型T的值。这些是我能够想到/理解的几个概念。
在我看来,在STL逻辑中已经使用了非常一般而重要的函数。有人能解释一下上述概念吗?
这是安置新的。 – chris 2014-12-04 17:20:49