Описание тега move-constructor
In C++11 a move constructor is a special member function similar to a copy constructor, but taking an rvalue-reference parameter.
1
ответ
Переместить комментарий конструктора, который не печатается
У меня есть небольшая программа, как показано ниже: class boovector{ private: int size; char *arr; public: boovector(){size=1;arr=new char[size];cout<<" boovector default constructor called"<<endl;} boovector(boovector &b) { cout<…
29 июн '18 в 19:33
3
ответа
Все ли реализации std::move(), основанные на std::swap(), содержат ошибки?
Возможный дубликат: Что я могу сделать с перемещенным объектом? Например, посмотрите этот код: template<class T> void swap(T& a, T& b) { T tmp(std::move(a)); a = std::move(b); b = std::move(tmp); } Это только у меня, или здесь есть оши…
27 июл '12 в 16:01
0
ответов
Оператор назначения по умолчанию Segfault
Я получаю segfault при использовании локально созданного объекта после того, как ему назначен другой локально созданный объект того же типа. Объект имеет конструкторы перемещения и копирования по умолчанию, а также оператор присваивания по умолчанию…
19 авг '15 в 00:38
1
ответ
Есть ли частичный конструктор копирования в C++?
Есть ли способ реализовать конструктор копирования в C++, который только копирует некоторые конкретные элементы и реализует перемещение для других членов. Например, у меня есть класс class partialCopy { int a; int largeArray[1000] ; } Теперь предпол…
28 янв '14 в 16:17
1
ответ
"Нет жизнеспособного перегруженного =" nullptr
Я только начал с C++ и застрял в конструкторе перемещения. Вот мой .cpp: SimpleMatrix::SimpleMatrix(SimpleMatrix &&other_mat) { cols = other_mat.cols; rows = other_mat.rows; data_ = other_mat.data_; other_mat.cols = 0; other_mat.rows = 0; ot…
28 дек '18 в 19:59
1
ответ
Переместить поведение конструктора
Недавно я наткнулся на какое-то странное поведение (странное с моей точки зрения) в конструкторе ходов. Результат отличается при компиляции с GCC и Visual Studio. Я хотел бы услышать объяснение этого поведения, не думаю, что это ошибка, но, вероятно…
15 дек '18 в 15:14
0
ответов
Реализация матричного класса в C++ с использованием конструктора перемещения
Я пытаюсь сделать матричный класс в C++.(Я знаю, что есть тонны лучших библиотек, но прежде чем использовать их, я хочу реализовать простой класс.) Это то, что я хочу реализовать: matrix4 = matrix1 + matrix2 + matrix3 Поэтому я сделал ниже код. Проб…
04 авг '18 в 01:04
3
ответа
Должен ли временный T в качестве параметра вызывать T(const T&) или T(T&&) в C++11?
Итак, код сначала: #include <iostream> #include <utility> struct X{ int i; void transform(){} X() :i(0){std::cout<<"default\n";} X(const X& src): i(src.i){std::cout<<"copy\n";} X(X&& msrc) :i(msrc.i){msrc.i=0;std:…
11 июн '14 в 20:41
1
ответ
Пустой пользовательский конструктор перемещения
Следующий фрагмент кода, который я писал для понимания поведения перемещения CTOR, затрудняет мне понимание его вывода: #include <iostream> class Temp { public: Temp(){ std::cout << "Temp DEFAULT CTOR called" << std::endl; mp_Val =…
07 янв '18 в 14:19
1
ответ
Как найти конструкторы перемещения в кодовой базе, используя grep или IDE?
Я хочу найти конструкторы перемещения в базе кода большого проекта C++. Простое сокращение "&&" не работает, потому что оно соответствует множеству "логических" и "операторов". Любой способ grep точнее для конструкторов перемещения? Любой способ пои…
11 июл '14 в 01:44
6
ответов
Переместить элемент std priority_queue в C++11
Минимальный рабочий пример. #include <cassert> #include <list> #include <queue> //#define USE_PQ struct MyClass { const char* str; MyClass(const char* _str) : str(_str) {} MyClass(MyClass&& src) { str = src.str; src.str = n…
22 ноя '13 в 16:14
1
ответ
Наследование и удаление конструкторов копирования и перемещения
Я хочу иметь класс с наследованием третьего уровня. Я не буду перемещать свои классы или копировать их. На самом деле, они будут созданы только один раз. Я хочу проверить, можно ли будет удалить перемещение и скопировать конструкторы и назначения, к…
21 окт '15 в 21:10
1
ответ
Как конструктор копирования может быть вызван с помощью rvalue
MWE: struct A { A() {std::cout << "constructor" << std::endl; } A(const A& a) {std::cout << "copy constructor" << std::endl; } A(A&& a) {std::cout << "move constructor" << std::endl; } }; int main() { …
04 июл '18 в 05:07
1
ответ
В C++, как можно предсказать, будет ли вызвана семантика перемещения или копирования?
Учитывая широту, которой обладает компилятор C++ при создании экземпляров временных объектов и при вызове таких механизмов, как оптимизация возвращаемого значения и т. Д., Не всегда ясно, глядя на некоторый код, будет ли вызываться семантика перемещ…
24 авг '18 в 06:32
2
ответа
Безопасно ли полагаться на неявно объявленный конструктор перемещения?
Вот где я получил большую часть этой информации: http://en.cppreference.com/w/cpp/language/move_constructor По-видимому, это условия для неявно сгенерированного конструктора перемещения: нет никаких заявленных пользователем конструкторов копирования…
24 авг '13 в 23:30
2
ответа
Переместить конструктор для класса
Я написал два класса, и у меня есть проблема, помещая их в вектор: #include <vector> #include <iostream> #include <fstream> class A { public: std::ofstream filestream; int aa1; int aa2; int aa3; int aa4; int aa5; int aa6; int aa7; …
22 ноя '17 в 00:39
4
ответа
Нужна ли Visual Studio 2017 явное объявление конструктора перемещения?
Приведенный ниже код может быть успешно скомпилирован с использованием Visual Studio 2015, но не удалось с помощью Visual Studio 2017. Отчеты Visual Studio 2017: ошибка C2280: "std::pair::pair(const std::pair &)": попытка сослаться на удаленную функ…
06 ноя '18 в 09:14
1
ответ
std::move с внутренними объектами - нет соответствия для вызова
Код ниже не компилируется. Главный: #include "preset.h" int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); SomeA a1(4); WrapA wA1(a1); WrapA wA2(std::move(wA1)); //fails to compile here return a.exec(); } preset.h: #include <QDebu…
24 авг '18 в 11:32
3
ответа
Конструктор и область действия C++
Если у меня есть объект, объявленный в стеке, и я возвращаю ссылку на него, я полагаю, что я больше не смогу получить к нему доступ, потому что он выходит из области видимости. Правильный? Что если я просто верну сам объект (не ссылку на него)? Буде…
22 мар '14 в 19:57
1
ответ
Как реализовать конструктор перемещения для элемента без указателя большого размера?
На этом сайте есть пример простого класса с конструктором перемещения. Как будет выглядеть конструктор перемещения аналогичного класса: class MemoryPage { std::vector<char> buff; public: explicit MemoryPage(int sz=512) { for(size_t i=0;i<sz…
21 фев '15 в 22:14