Вопросы по теме 'rvo'
Почему Visual Studio не выполняет оптимизацию возвращаемого значения (RVO) в этом случае
Я отвечал на вопрос и рекомендует возвращать по значению для большого типа , потому что я был уверен, что компилятор выполнит оптимизация возврата (RVO) . Но затем мне было указано, что Visual Studio 2013 не выполняет RVO в моем коде.
Я нашел...
4969 просмотров
schedule
27.03.2024
Время защиты блокировки на основе области действия и возвращаемых значений
class C {
mutable std::mutex _lock;
map<string,string> deep_member;
public:
auto get_big_lump()
{
std::unique_lock<std::mutex> lock(_lock); // establish scope guard
return deep_member; // copy the stuff while...
1119 просмотров
schedule
23.08.2022
Оптимизация компилятора с возвратом (std::stringstream ss).str()
Следующая функция принимает строку в качестве аргумента и возвращает другую после некоторой обработки.
Достаточно ли справедливо предположить, что компилятор выполнит оптимизацию перемещения, и я не буду копировать содержимое строки после...
479 просмотров
schedule
05.11.2022
Как реализация конструктора перемещения влияет на оптимизацию возвращаемого значения?
Рассмотрим следующий фрагмент кода:
#include <iostream>
#include <string>
class A {
public:
A() {
std::cout << "A::A()\n";
}
~A() {
std::cout << "A::~A()\n";
}
A(const A&) =...
216 просмотров
schedule
10.11.2022
Применяется ли оптимизация к однострочным функциям?
Я не люблю повторяться в коде, но и не хочу терять производительность из-за простых функций. Предположим, что класс имеет operator+ и функцию Add с одинаковой функциональностью (рассматривая первый как удобный способ использования класса в...
139 просмотров
schedule
14.06.2022
Конструктор перемещения для возвращаемых объектов нарушает код С++ 98?
Стандарт не требует, чтобы компилятор выполнял оптимизацию возвращаемого значения (RVO), но тогда, начиная с C++11, результат должен быть перемещен .
Похоже, что это может ввести код UB для/разрыва, который был действителен в C++98.
Например:...
375 просмотров
schedule
22.12.2022
Требуется ли конструктор/назначение перемещения для запуска RVO в С++ 11?
Например:
В принятом ответе https://stackoverflow.com/a/14623480/1423254
Будет ли копирование elision и RVO по-прежнему работать для классов без конструкторов перемещения?
Да, RVO все еще срабатывает. На самом деле ожидается, что компилятор...
95 просмотров
schedule
20.09.2023