Allocators@C++11
- 43. アロケータへの配慮
std::vector の例 (1/2)
43
pointer p_;
.....
MyClass MyClass MyClass ・・・・・(未構築)
std::vector<MyClass>
メモリは allocate で獲得,
deallocate で解放
各 value_type オブジェクトは
construct で構築, destroy で破壊
ポインタ型はアロケータで
指定されたものを使う
- 69. 69
int main(){
RobustAlloc a;
vector<int, RobustAlloc> v(a);
f(move(v));
.....
}
void f(vector v){
.....
.....
}
a.exe (デバッグビルド) b.dll (リリースビルド)
new/delete の
ABI ⾮互換性の克服
デバッグビルドの new でメモリを獲得,
デバッグビルドの delete で解放するのでO.K.
(詳しくは 私の第1回 Boost.勉強会参照)