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

GCC returning reference to temporary - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не компилируется. Объясните смысл ошибки // opencv http://www.cyberforum.ru/cpp-beginners/thread995851.html
Поставил opencv на mac. Компилю простую вещь и мне выдает такое: Undefinded symbols for architecture x86_64: "cv::imread( .... )" Насколько я понимаю, он не знает эту функцию imread(..) ...
C++ Очередь с приоритетом Помогите, пожалуйста, создать из моего класса очередь с приоритетом(приоритетом является money). #include <iostream> #include <string.h> #include <queue> // class Client{ char* name; int... http://www.cyberforum.ru/cpp-beginners/thread995848.html
цифры после запятой C++
Нужно из float'ского типа достать значения после запятой. к примеру имеем число 3.13 нужно получить в итоге int'овское 13. учитывая: целая часть всегда равна 3. гарантировано то, что всегда есть...
copy_if C++
Пусть у меня есть двумерный массив векторов, а также вектор, содержащий индексы тех строк массива, которые надо скопировать. Можно ли это оформить через copy_if? как правильно составить условие...
C++ Перевести код с паскаля на C++ http://www.cyberforum.ru/cpp-beginners/thread995838.html
По заданному натуральному числу N необходимо вычислить количество натуральных чисел, которые являются делителями N! (факториала числа N). Например, при N=4, N!=4·3·2·1=24. Это число имеет такие...
C++ базовый,дочерний , дружественная функция Базовый класс в нем будет массив имен из 10 элементов , конструктор должен сам заполнить этот массив любыми именами , второй класс наследуется от базового , у него у дочернего(второго ) есть... подробнее

Показать сообщение отдельно
ct0r
Игогошка!
1773 / 675 / 42
Регистрация: 19.08.2012
Сообщений: 1,287
Завершенные тесты: 1
03.11.2013, 13:57
Цитата Сообщение от gromo Посмотреть сообщение
С большим трудом, до меня дошло, спасибо
Если хочешь до конца разобраться с rvalue reference, посмотри еще universal reference и perfect forwarding.

Цитата Сообщение от gromo Посмотреть сообщение
Но что значит вот это (со стандарта)
Это значит, что безымянная rvalue reference - это xvalue. И что может быть перемещение ресурсов, если возвращать, например, std::move(член класса);

Цитата Сообщение от gromo Посмотреть сообщение
а если вместо move поставить, например, std::abs(), то варнинг не исчезает.
Ну тут компилятору очевидно, что это локальный объект, потому что это abs возвращает просто значение.

Цитата Сообщение от gromo Посмотреть сообщение
И что в случае возврата больших значений из функции? Мне, например, нужно часто возвращать из функции объекты типа string размером в несколько сотен мебибайт. Не лучше ли их переместить как XValue вместо возврата по значению? Иногда такую оптимизацию делает сам компилятор, когда может.
Если не пользоваться динамической памятью, то как вариант стоит посмотреть на RVO и copy elision.

Цитата Сообщение от gromo Посмотреть сообщение
То есть, получается, для строк и типов, которые внутри хранят указатели на дин.память move-semantics оправдана, а для фундаментальных типов уже не работает, потому что они разрушатся?
Семантика перемещения оправдана, когда нужно уметь красть ресурсы или когда объект может быть только перемещаемым. Не совсем понял про разрушение фундаментальных типов.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru