Форум программистов, компьютерный форум 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(..) Тобиш, я неправильно поставил opencv? Или дело вообще в другом?
C++ Очередь с приоритетом Помогите, пожалуйста, создать из моего класса очередь с приоритетом(приоритетом является money). #include <iostream> #include <string.h> #include <queue> // class Client{ char* name; int money; // 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. Это число имеет такие делители: 1, 2, 3, 4, 6, 8, 12, 24. Таким образом искомое количество равняется 8. var a: array of integer; i, j, m, p, n: integer; r: longint; begin readln(n);
C++ базовый,дочерний , дружественная функция Базовый класс в нем будет массив имен из 10 элементов , конструктор должен сам заполнить этот массив любыми именами , второй класс наследуется от базового , у него у дочернего(второго ) есть дружественная функция , которая имеет доступ к закрытым элементам базового класса и пусть она выводит элементы массива через дочерний класс . подробнее

Показать сообщение отдельно
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
03.11.2013, 13:57     GCC returning reference to temporary
Цитата Сообщение от 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 оправдана, а для фундаментальных типов уже не работает, потому что они разрушатся?
Семантика перемещения оправдана, когда нужно уметь красть ресурсы или когда объект может быть только перемещаемым. Не совсем понял про разрушение фундаментальных типов.
 
Текущее время: 02:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru