У меня есть следующий код:
void Foo() {
static std::vector<int>(3);
// Vector object is constructed every function call
// The destructor of the static vector is invoked at
// this point (the debugger shows so)
// <-------------------
int a;
}
Затем где-то я вызываю Foo
несколько раз в последовательности
Почему векторный объект строится накаждый вызов Foo()
и почему деструктор вызывается сразу после объявления static ...
?
Обновление:
Я пыталсяреализовать функцию однократного вызова механизма, и я подумал, что написать что-то вроде
static core::CallOnce(parameters)
, где CallOnce
- имя класса, было бы очень хорошо.
На мой взгляд, написание static core::CallOnce call_once(parameters)
выглядит хуже, но хорошо, это тот случай, когда я ничего не могу с этим поделать.
Спасибо.