Вышеприведённый ответ был не столько про vector, сколько комментарием к этой строчке: E>>>Ну таки вызовы кучи -- это сайд-эффект жеж.
W>>...отсутствие её в стандарте, то это не так — явное разрешение не выделять память при вычислении new-expression в стандарте есть.
E>А разве vector<int> v(15); — это new-expression?
Нет. Да с аллокатором по умолчанию внутри vector<int> память выделяется прямым вызовом ::operator new, а не опосредованно через new-expression. Что опять же формально разные вещи. Впрочем для умолчательного аллокатора также есть отдельная оговорка, что не каждый вызов allocate обязан приводить к вызову ::operator new.