Сообщение Re: Что мешает не вычислять size() каждую итерацию цикла? от 30.04.2021 13:32
Изменено 30.04.2021 13:34 rg45
Re: Что мешает не вычислять size() каждую итерацию цикла?
Здравствуйте, Zhendos, Вы писали:
Z>почему компилятор считает что "MyVec<MyVec<int>>" может из-за этого поменяться?
Потому, что константность ссылки, по которой вектор передается в foo, не гарантирует его неизменяемости. Да, взлом константности не есть хорошо с точки зрения дизайна, но программа-то остается well-formed, тем не менее. А значит, компилер обязан корректно обработать и этот случай.
Да м сколько там тех вычислений. Два mov-а и один sub. Неужто чувствительно?
Z>почему компилятор считает что "MyVec<MyVec<int>>" может из-за этого поменяться?
Потому, что константность ссылки, по которой вектор передается в foo, не гарантирует его неизменяемости. Да, взлом константности не есть хорошо с точки зрения дизайна, но программа-то остается well-formed, тем не менее. А значит, компилер обязан корректно обработать и этот случай.
Да м сколько там тех вычислений. Два mov-а и один sub. Неужто чувствительно?
Re: Что мешает не вычислять size() каждую итерацию цикла?
Здравствуйте, Zhendos, Вы писали:
Z>почему компилятор считает что "MyVec<MyVec<int>>" может из-за этого поменяться?
Потому, что константность ссылки, по которой вектор передается в foo, не гарантирует его неизменяемости. Да, взлом константности не есть хорошо с точки зрения дизайна, но программа-то остается well-formed, тем не менее. А значит, компилер обязан корректно обработать и этот случай.
Да и сколько там тех вычислений. Два mov-а и один sub. Неужто чувствительно?
Z>почему компилятор считает что "MyVec<MyVec<int>>" может из-за этого поменяться?
Потому, что константность ссылки, по которой вектор передается в foo, не гарантирует его неизменяемости. Да, взлом константности не есть хорошо с точки зрения дизайна, но программа-то остается well-formed, тем не менее. А значит, компилер обязан корректно обработать и этот случай.
Да и сколько там тех вычислений. Два mov-а и один sub. Неужто чувствительно?