Вот почему я специально сказал: «Я просто обожаю это, поэтому, пожалуйста, не считайте это Евангелием ...» Это было просто задумано как идея попробовать и испытать.
std::vector<int> a;
a.push_back(1);
a.push_back(a[0]);
I о что узнал что приведенный выше код может быть очень опасным.
(Если не понятно почему, вы не одиноки ... для меня это тоже не очевидно.)
Мои вопросы:Каков «стандартный» способ борьбы с этим? Создание новой переменной и ее последующее присвоение чему-либо потом кажется мне немного странным. Есть ли лучший способ справиться с этим?
Как ты тренируешь себя остерегаться подобных проблем? Какой шаблон (ы) вы ищете? Я понятия не имею, чтобы признать эту ситуацию; Я узнал о псевдонимах, только когда узнал оrestrict
Ключевое слово в C, и только теперь я понимаю, в чем проблема на самом деле.
Я бы с радостью принял ответ, но не похоже, что на часть (2) вопроса был дан ответ. Мне интересно, какие стратегии люди используют для поиска псевдонимов в написанном ими коде.
Одна стратегия, которую я придумала до сих пор, состоит в том, чтобы не передавать одно и то же значение в двух параметрах. (В этом случае один параметр неявный и один явный.)
Есть ли другие простые вещи, на которые стоит обратить внимание?