Форум программистов, компьютерный форум, киберфорум
Наши страницы

Разница между префиксной и постфиксной формой записи счетчика цикла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти количество элементов массива, равных первому элементу http://www.cyberforum.ru/cpp-beginners/thread122150.html
ПОМОГИТЕ ПОЖАЛУЙСТА!!!! 1)Составить программу,которая находит количество элементов,равных первому элементу,и количество элементов,равных последнему,в мвссивах X(n) и Y(M).вычислить количество...
C++ Константы и выражения 1.Записать каждое десятичное число в виде целой десятичной, восьмеричной и шестнадцатеричной константы: 126 10 219 77 2.Записать каждое десятичное число в виде вещественной константы в форме с... http://www.cyberforum.ru/cpp-beginners/thread122142.html
Выберите названия, содержащие хотя бы одно из заданных ключевых слов. C++
Помогите плиз решить задачу на С++ Заданный набор ключевых слов, а также текст, в котором хранится длинный список названий книг и научных работ. Выберите названия, содержащие хотя бы одно из...
записать каждое десятичное C++
1. Записать каждое десятичное число в виде целой десятичной, восьмеричной и шестнадцатеричной константы: 55 219 143 79 2. Записать каждое десятичное число в виде вещественной константы в форме с...
C++ Как сделать, чтоб после появления нового символа, предыдущий менялся на пробел http://www.cyberforum.ru/cpp-beginners/thread122114.html
Есть цикл вот такой: int main() { string b,c; b = "+"; c = " "; int a = 0; for(int i = 0;i<=100000000;i++) {
C++ Среди всех n-значных чисел указать те, сумма цифр которых равна данному числу k. Среди всех n-значных чисел указать те, сумма цифр которых равна данному числу k. Помогите решить :) подробнее

Показать сообщение отдельно
hoggy
6813 / 3001 / 516
Регистрация: 15.11.2014
Сообщений: 6,795
Завершенные тесты: 1
25.02.2016, 05:03
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Речь в данном случае идет не о какой-то абстрактной "оптимизации неиспользуемых значений", а о вполне конкретной ситуации: устранении выполнения копирования старого значения объекта внутри нетривиальной реализации постфиксного оператора '++' в ситуации, когда это старое значение не используется снаружи, т.е. в вызове этого оператора.
почти верно. есть нюанс.
компиляторы уже давно научились стандартным RVO/NRVO оптимизациям.
и в ситуации, когда они фиксят, что снаружи значение никому не нужно,
они запросто могут выпилить конструктор

Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Оптимизации такого рода весьма и весьма нетривиальны, в том смысле, что для не-inline вызова функций идеального способа выполнения такой оптимизации просто не существует:
RVO/NRVO вообще то стандартны.
их обязаны уметь все компиляторы.
и они их умеют уже с незапамятных времен.

все очень просто: стандарт разрешает компиляторам покласть болт
на любые возможные эффекты в конструкторах копий.

а это значит, что компилятору вообще фиолетовы любые побочные эффекты внутри функции.
ему достаточно знать её прототип,
что бы при необходимости выпилить конструктор копии
в каких то опр. случаях.
например, когда значение снаружи все равно никому не нужно.

я хочу сказать, что совершенно не важно насколько нетривиальна функция.

компилятор оптимизирует конструкцию вида:
C++
1
obj++;
для любых типов так же просто,
как и для обычного инта.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru