Вот почему я специально сказал: «Я просто обожаю это, поэтому, пожалуйста, не считайте это Евангелием ...» Это было просто задумано как идея попробовать и испытать.

std::vector<int> a;
a.push_back(1);
a.push_back(a[0]);

I о что узнал что приведенный выше код может быть очень опасным.

(Если не понятно почему, вы не одиноки ... для меня это тоже не очевидно.)

Мои вопросы:

Каков «стандартный» способ борьбы с этим? Создание новой переменной и ее последующее присвоение чему-либо потом кажется мне немного странным. Есть ли лучший способ справиться с этим?

Как ты тренируешь себя остерегаться подобных проблем? Какой шаблон (ы) вы ищете? Я понятия не имею, чтобы признать эту ситуацию; Я узнал о псевдонимах, только когда узнал оrestrict Ключевое слово в C, и только теперь я понимаю, в чем проблема на самом деле.

Редактировать:

Я бы с радостью принял ответ, но не похоже, что на часть (2) вопроса был дан ответ. Мне интересно, какие стратегии люди используют для поиска псевдонимов в написанном ими коде.

Одна стратегия, которую я придумала до сих пор, состоит в том, чтобы не передавать одно и то же значение в двух параметрах. (В этом случае один параметр неявный и один явный.)

Есть ли другие простые вещи, на которые стоит обратить внимание?

Ответы на вопрос(5)

Ваш ответ на вопрос