Сообщение Re[3]: Что мешает не вычислять size() каждую итерацию цикла? от 30.04.2021 13:40
Изменено 30.04.2021 13:44 rg45
Re[3]: Что мешает не вычислять size() каждую итерацию цикла?
Здравствуйте, Zhendos, Вы писали:
Z>Ну и пусть "foo" поменяет элемент типа "MyVec<int>" полностью,
Z>причем здесь MyVec<MyVec<int>>, ссылка ведь передается на "MyVec<int>",
Z>главный то вектор к этому каким боком и как изменение его элемента может изменить размер самого вектора?
Внутри foo может выполняться вставка или удаление, что изменит размер вектора. И если компилер в точке обращения к foo не видит ее определения, он не может исключать такую возможность.
Z>Ну и пусть "foo" поменяет элемент типа "MyVec<int>" полностью,
Z>причем здесь MyVec<MyVec<int>>, ссылка ведь передается на "MyVec<int>",
Z>главный то вектор к этому каким боком и как изменение его элемента может изменить размер самого вектора?
Внутри foo может выполняться вставка или удаление, что изменит размер вектора. И если компилер в точке обращения к foo не видит ее определения, он не может исключать такую возможность.
Re[3]: Что мешает не вычислять size() каждую итерацию цикла?
Здравствуйте, Zhendos, Вы писали:
Z>Ну и пусть "foo" поменяет элемент типа "MyVec<int>" полностью,
Z>причем здесь MyVec<MyVec<int>>, ссылка ведь передается на "MyVec<int>",
Z>главный то вектор к этому каким боком и как изменение его элемента может изменить размер самого вектора?
Внутри foo может выполняться вставка или удаление, что изменит размер вектора. Да что там вставка и удаление, полнотью может измениться все его содержимое. И если компилер в точке обращения к foo не видит ее определения, он не может исключать такую возможность.
Z>Ну и пусть "foo" поменяет элемент типа "MyVec<int>" полностью,
Z>причем здесь MyVec<MyVec<int>>, ссылка ведь передается на "MyVec<int>",
Z>главный то вектор к этому каким боком и как изменение его элемента может изменить размер самого вектора?
Внутри foo может выполняться вставка или удаление, что изменит размер вектора. Да что там вставка и удаление, полнотью может измениться все его содержимое. И если компилер в точке обращения к foo не видит ее определения, он не может исключать такую возможность.