Вопросы по теме 'copy-elision'
Оптимизация возвращаемого значения C++
Этот код:
#include <vector>
std::vector<float> getstdvec() {
std::vector<float> v(4);
v[0] = 1;
v[1] = 2;
v[2] = 3;
v[3] = 4;
return v;
}
int main() {
std::vector<float> v(4);
for (int i...
9062 просмотров
schedule
25.03.2023
Требуется ли конструктор копирования при возврате неявным преобразованием?
Следующий код отлично компилируется в Visual C ++ 2013, но не в GCC или Clang.
Что правильно? Требуется ли доступный конструктор копии при возврате объекта через неявное преобразование?
class Noncopyable
{
Noncopyable(Noncopyable const...
1868 просмотров
schedule
12.07.2022
Как обеспечить удаление копии, почему она не будет работать с конструктором удаленной копии?
У меня есть некопируемый класс. Копировать это будет проблематично. Я хочу гарантировать , что он никогда не будет скопирован, поэтому я сделал его конструктор копирования deleted :
class A {
public:
A();
A(const A&) = delete;...
3332 просмотров
schedule
02.01.2023
скопировать elision с помощью STL (вектор в качестве примера)
Я читал об исключении копии в С++. И у меня были сомнения по поводу STL в С++ с использованием этой копии.
Следующий код:
#include <vector>
#include <iostream>
using namespace std;
vector<int> merge(vector<int>...
733 просмотров
schedule
20.08.2022
Структурированные привязки и обязательное исключение копирования
Если вы используете структурированные привязки, подобные этому
auto [a, b, c] = std::make_tuple(1, 10.0, "string object"s);
тогда копии из возвращенного кортежа будут исключены, а объекты перейдут прямо в a , b и c или инициализация...
197 просмотров
schedule
18.12.2022
Скопировать elision для инициализации списка, где это указано в стандарте?
В [dcl.init]/17.6 это явно написано, что для случая инициализации в скобках происходит удаление копии:
Если выражением инициализатора является значение prvalue, а версия исходного типа без уточнения cv относится к тому же классу, что и класс...
582 просмотров
schedule
05.05.2023
Как заставить фабричную функцию возвращать некопируемый объект?
Контекст
Пытаясь создать архив gzip с другим именем файла внутри, я написал следующий фрагмент кода.
#include <iostream>
#include <utility>
#include <boost/iostreams/filtering_stream.hpp>
#include...
922 просмотров
schedule
24.07.2022
Скопируйте исключение конструктора для прямой инициализации, когда аргумент преобразуется в целевой тип
Этот вопрос касается формулировки стандарта C ++.
Все компиляторы, и я думаю, это то, что должно быть, исключите конструктор копирования для инициализации объекта b ниже ( сборка здесь ):
struct B;
struct A{
operator B();
};
struct B{...
76 просмотров
schedule
07.02.2023
Как я могу инициализировать нестатические частные переменные-члены шаблона из временных на месте, то есть без копирования или перемещения?
Я хотел бы инициализировать две нестатические частные переменные-члены шаблона шаблона класса из временного на месте, т. е. без копирования или перемещения.
Для пояснения рассмотрим следующий пример кода:
#include <iostream>
struct P {...
103 просмотров
schedule
08.09.2023
Неожиданный конструктор копирования
В следующем примере я ожидаю только одну конструкцию-копию, так как я думал, что промежуточные копии будут копия пропущена . Единственная необходимая (я думал?) копия будет в конструкторе B для инициализации переменной-члена a .
#include...
89 просмотров
schedule
26.10.2022
Гарантированное удаление копии для инициализации массива с унифицированными фигурными скобками. Разве это не должно быть обязательным, начиная с С++ 17?
Насколько я правильно понимаю новые правила
https://en.cppreference.com/w/cpp/language/copy_elision
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0135r0.html
Этот код должен компилироваться для компиляторов, соответствующих...
87 просмотров
schedule
18.05.2022
Копируйте элизионные и тривиально копируемые типы
Из стандарта 6.7.7 (временные объекты) мы видим:
Когда объект типа класса X передается или возвращается из функции, если X имеет хотя бы один подходящий конструктор копирования или перемещения ([специальный]), каждый такой конструктор является...
127 просмотров
schedule
17.04.2022