Проклятие долины страусов
Mar. 6th, 2010 02:11 amКто не пишет на С++, догадайтесь, что печатает эта программа:
#include <vector>
using namespace std;
int ctors, dtors, copyctors;
struct foo {
foo() { ctors++; }
foo(const foo &) { copyctors++; }
~foo() { dtors++; }
};
vector < vector < foo > > pool;
void addline() {
ctors = dtors = copyctors = 0;
pool.push_back(vector < foo > ());
pool.back().reserve(1000);
for (int i = 0; i < 1000; ++i)
pool.back().push_back(foo());
printf("ctors = %d, dtors = %d, copyctors = %d\n",
ctors, dtors, copyctors);
}
main() {
addline();
addline();
ctors = dtors = copyctors = 0;
pool.push_back(vector < foo > ());
printf("ctors = %d, dtors = %d, copyctors = %d\n",
ctors, dtors, copyctors);
}И при всем богатстве выбора языков другой альтернативы нет.
Улита едет, когда-то будет.