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