9
ответов

C++: возврат ссылкой и конструкторами копии

Ссылки в C++ экранируют меня.:) Основная идея состоит в том, что я пытаюсь возвратить объект из функции. Я хотел бы сделать это, не возвращая указатель (потому что затем я должен буду вручную удалить его)...
вопрос задан: 12 October 2010 00:54
6
ответов

В C++ это - все еще плохая практика для возврата вектора из функции?

Короткая версия: распространено возвратить большие объекты — такие как векторы/массивы — на многих языках программирования. Этот стиль, теперь приемлемый в C++ 0x, если класс имеет конструктора перемещения, или сделайте C++...
вопрос задан: 12 October 2010 00:54
4
ответа

“Оптимизация возвращаемого значения” вызывает неопределенное поведение?

Чтение этой статьи Wikipedia, на которую указывает один из repliers к следующему вопросу: конструктор Копии C++, временные файлы и семантика копии я столкнулся с этой строкой В зависимости от компилятора...
вопрос задан: 23 May 2017 12:07
4
ответа

Скопируйте конструктора по сравнению с оптимизацией возвращаемого значения

В предыдущем вопросе казалось, что простая функция возврата значением всегда копирует свой возвращаемый аргумент в переменную, присваиваемую от него. Требуемый стандартом, или может...
вопрос задан: 23 May 2017 11:55
4
ответа

C++ получает метод - возврат значением или ссылкой

Я имею, идут очень простой вопрос, но к сожалению я не могу изобразить ответ сам. Предположим, что у меня есть некоторая структура данных, которая содержит настройки и действия как карта настроек. У меня есть GetValue (станд. константы::...
вопрос задан: 16 July 2010 23:27
4
ответа

Когда RVO должен ударить-?

Из следующего кода, Если RVO произошел, я ожидаю видеть, что 2 адреса указывают на то же местоположение, однако дело обстоит не так (мой компилятор MS VC9.0), #include <iostream> #include и...
вопрос задан: 16 July 2010 23:25
4
ответа

Понимание оптимизации возвращаемого значения и возврат временных файлов - C++

Рассмотрите три функции. станд.:: представьте get_a_string в виде строки () {возврат "привет";} станд.:: представьте get_a_string1 в виде строки () {станд. возврата:: строка ("привет");} станд.:: представьте get_a_string2 в виде строки
вопрос задан: 13 July 2010 17:26
4
ответа

ссылка константы на временный и копирующий - C++

Рассмотрите следующий код, нечто структуры {нечто () {станд.:: суд <<"Создающий!" <<станд.:: endl;} нечто (константа foo& f) {станд.:: суд <<"Копия...
вопрос задан: 12 July 2010 13:14
3
ответа

Доверие оптимизации возвращаемого значения

Как Вы идете об использовании оптимизации возвращаемого значения? Есть ли любые случаи, где я могу доверить современный компилятор для использования оптимизации, или если я всегда иду безопасным путем и возвращаю указатель...
вопрос задан: 13 July 2010 17:26
2
ответа

Будут возвращаемыми значениями, переданными rvalue ссылкой в C++ 0x?

Скажем, у меня есть функция: станд. определения типа:: векторный <международный> VecType; VecType randomVector (); обработка интервала () {VecType v = randomVector (); возвратите станд.:: накопитесь (v.begin (), v.end (), 0);}...
вопрос задан: 3 October 2011 13:03
0
ответов

Какой метод возврата лучше подходит для больших данных в C ++ / C ++ 11?

Этот вопрос был вызван путаницей в отношении RVO в C ++ 11. У меня есть два способа «вернуть» значение: возврат по значению и возврат через ссылочный параметр. Если я не рассматриваю производительность, я предпочитаю ...
вопрос задан: 23 May 2017 12:31
0
ответов

Обмен STL при возврате?

извините за такой длинный вопрос, но я постараюсь быть максимально ясным. Это как-то связано с моим предыдущим вопросом о строках в C ++. Я пытаюсь понять, как мне вернуть std :: string из ...
вопрос задан: 23 May 2017 12:11
0
ответов

Сможет ли компилятор C ++ оптимизировать неиспользуемое возвращаемое значение по `ссылке`?

Прежде, чем кто-то прыгнет и скажет Profile перед оптимизацией !, это просто вопрос из любопытства, связанный с этим исходным вопросом. Если я возвращаюсь по ссылке на тот же объект, будет ли он ...
вопрос задан: 23 May 2017 11:58
0
ответов

Является ли RVO (оптимизация возвращаемого значения) для безымянных объектов универсально гарантированным поведением?

Этот вопрос находится в другом аспекте ( также ограничивается gcc). Мой вопрос предназначен только для безымянных объектов. Оптимизация возвращаемого значения позволяет изменять наблюдаемое поведение результирующего ...
вопрос задан: 23 May 2017 10:08
0
ответов

Как вернуть fstream (C++0x)

Пожалуй, я займусь этим и начну с кода: #include #include #include class test : public std::ofstream { public: test(const ...
вопрос задан: 16 November 2015 00:54
0
ответов

Как отключить оптимизацию возвращаемых значений в Visual Studio 2010?

Можно ли отключить RVO (оптимизацию возвращаемого значения) в Visual Studio 2010? Установка флага оптимизации в /Od (отключает все оптимизации) не помогает. В g++ есть флаг -fno-elide-...
вопрос задан: 13 October 2015 08:41
0
ответов

Переместить или оптимизация именованного возвращаемого значения (NRVO)?

Допустим, у нас есть следующий код: std :: vector f () {std :: vector y; ... вернуть y; } std :: vector x = ... х = f (); Кажется, у компилятора есть два подхода ...
вопрос задан: 15 March 2013 13:21
0
ответов

Почему параметры по значению исключаются из NRVO?

Представьте: S f (S a) {return a; } Почему не разрешено использовать псевдоним a и слот возвращаемого значения? S s = f (t); S s = t; // обычно не может преобразовать его в это :( Спецификация этого не допускает ...
вопрос задан: 13 November 2012 10:03
0
ответов

Дұрыс әдіс (семантиканы жылжыту) C ++ 11-ге қоңырау шалатын функциядан std :: vector қайтару

Мен std :: vector (немесе басқа STL контейнерін) толтырғым келеді: класс Foo { көпшілікке арналған: Foo (int _n, const Bar & _m); жеке: std :: vector fooes_; } 1. Жақсы көрінетін ктор, қымбат өнімділігі ...
вопрос задан: 11 October 2012 12:18
0
ответов

Почему Visual C++ не выполняет оптимизацию возвращаемого значения -для самого простого кода?

Разве Visual C++ не выполняет оптимизацию возвращаемого значения -? #включить struct Foo { ~Foo (){ printf ("Уничтожение...\n" ); } }; Foo foo (){ return Foo (); } int main (){ foo (); } Я компилирую и...
вопрос задан: 30 July 2012 22:04
0
ответов

оптимизация возвращаемого значения компилятором в VS 2010

использование VS 2010 с полной оптимизацией /Ox посмотрите на следующие два вызова функций: static string test1(const string& input) {возвратный ввод; } static void test2(const string& input, ...
вопрос задан: 9 April 2012 01:12
0
ответов

RVO для сложных пользовательских-типов в C++

Во время вчерашнего собеседования по программированию одна из программ, которые мне нужно было написать, имела что-то вроде этой:struct Blob { // основное поле, содержащее статистику блоба изображения. }; std::vector&...
вопрос задан: 6 April 2012 20:08
0
ответов

Эффективное использование семантики перемещения вместе с (N)RVO

Допустим, я хочу реализовать функцию, которая должна обрабатывать объект и возвращать новый (возможно измененный)объект. Я хотел бы сделать это максимально эффективно в C + 11. Окружение такое...
вопрос задан: 31 March 2012 07:00
0
ответов

Как я могу быть уверен, что подпрограмма использует преимущества (N)RVO?

Я хотел бы убедиться, что мои процедуры используют (N)RVO, когда это возможно. Есть ли что-то, что я могу сделать или проверить, кроме синтаксического анализа полученного дизассемблированного кода, чтобы узнать, выполняется ли подпрограмма...
вопрос задан: 8 March 2012 17:05
0
ответов

Разумно ли возвращение с помощью `std :: move` в случае нескольких операторов возврата?

Я знаю, что обычно не рекомендуется возвращать с помощью std: : move, т.е. bigObject foo () {bigObject result; /*...*/ return std :: move (результат); } вместо просто bigObject foo () {bigObject ...
вопрос задан: 2 March 2012 11:35
0
ответов

Почему RVO запрещен при возврате параметра?

Это указано в [C ++ 11: 12.8 / 31]: Это исключение операций копирования / перемещения, называемое копированием, разрешено [...]: - в операторе return в функции с типом возвращаемого значения, когда ...
вопрос задан: 25 February 2012 14:33
0
ответов

ссылка или возврат - передовой опыт [закрыто]

Например, у нас есть функция кодирования. Что лучше всего использовать: void Crypto :: encoding (string & input, string & output) {// кодировка строки output = encoded_string; } или ...
вопрос задан: 19 February 2012 11:43
0
ответов

Отключение оптимизации возвращаемого значения g ++

Какие флажки мне нужны в командной строке, чтобы отключить оптимизацию возвращаемого значения, автоматически включенную компилятором g ++?
вопрос задан: 6 January 2012 02:04
0
ответов

Быстрее вернуть значение или изменить параметр, переданный ссылка?

В программе, которую я пишу, я должен передавать большие структуры данных (изображения) между функциями. Мне нужно, чтобы мой код работал как можно быстрее в разных ОС (таким образом, я не могу профилировать все тестовые примеры). Я ...
вопрос задан: 3 November 2011 15:37
0
ответов

RVO / NRVO и общедоступный неопределенный конструктор копирования

Я борюсь со следующим предложение сейчас, и я хочу знать юридические и, в меньшей степени, моральные аргументы против него или за него. Что у нас было: #include class T; класс C { public: C () ...
вопрос задан: 15 May 2011 17:33