формы
for( ; ; i++)
и циклом такой формы
for( ; ; ++i)
?
https://en.cppreference.com/w/cpp/language/operator_incdec
в чём отличие между i++ и ++i я зная, а вот отличие между for( ; ; i++) и for( ; ; ++i) для меня не совсем ясно
а что такое for для вас ясно?
Ну скажите, в чем отличие ++i от i++?
Разницы, по идее нет, пока это не перегружено, хотя, многие анализаторы считают, что префикс быстрее.
В постфиксом возвращается копия предыдущего значения, поэтому и рекомендуют префиксный.
А компилер не оптимизирует это, если возвращённое значение никуда не присваивается?
ага, понял, спасибо
Вроде для встроенных типов да, оптимизирует. А вот для пользовательских не знаю. Хотя компилеры сейчас умные. И для пользовательских тоже будет оптимизация. И если для него перегружен префиксный ++, а применяется постфиксный, когда значение до инкремента не используется, то компилер заменит постфиксный на префиксный. Но это не точно )
Полегче, это не перегруженная операция
Ну например там может быть итератор. Смысла в копии нет, если один фиг она никуда не присваивается
Если вызов инлайнится
Не может он так сделать
Ну я ж говорю, что это не точно )
Обсуждают сегодня