Информация об изменениях

Сообщение Re[9]: простой вопрос. неопределенность ? от 19.06.2015 20:10

Изменено 19.06.2015 20:11 watchmaker

Вышеприведённый ответ был не столько про vector, сколько комментарий к этой строчке:
E>>>Ну таки вызовы кучи -- это сайд-эффект жеж.

W>>...отсутствие её в стандарте, то это не так — явное разрешение не выделять память при вычислении new-expression в стандарте есть.


E>А разве vector<int> v(15); — это new-expression?


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

W>>...отсутствие её в стандарте, то это не так — явное разрешение не выделять память при вычислении new-expression в стандарте есть.


E>А разве vector<int> v(15); — это new-expression?


Нет. Да с аллокатором по умолчанию внутри vector<int> память выделяется прямым вызовом ::operator new, а не опосредованно через new-expression. Что опять же формально разные вещи. Впрочем для умолчательного аллокатора также есть отдельная оговорка, что не каждый вызов allocate обязан приводить к вызову ::operator new.