move-constructor
В C++ нельзя полагаться на конструктор копирования, вызываемый из оператора return, из-за специального предложения в стандарте, которое позволяет компилятору опустить вызов конструктора копирования, полученный из оператора return, даже если конструктор копирования имеет побочные эффекты. Таким образом, это пл...
У меня есть класс class A { public: A(){cout<<"C";} ~A(){cout<<"D";} }; int main(){ unique_ptr<A> a(new A[5]); // - doesn't work unique_ptr<A> a(new A[1]); // - doesn't work unique_ptr<A> a(new A); // - works } Почему это происходит? Я думаю, что дело в конструкто...
Я изучал возможности Move конструкторов в C++, и мне было интересно, каковы некоторые способы использования этой функции в Примере, таком как ниже. Рассмотрим этот код: template<unsigned int N> class Foo { public: Foo() { for (int i = 0; i < N; ++i) _nums[i] = 0; } Foo(const F...
Я узнал о (N)RVO в течение последних нескольких дней. Как я читал на cppreference в статье copy elision, для C++14: ... компиляторам разрешено, но не обязательно пропускать построение объектов класса copy - and move (начиная с C++11), даже если конструктор copy/move (начиная с C++11) и деструктор имеют з...
На этот вопрос уже есть ответ здесь: переместить конструктор на производный Объект 2 ответа Я пытаюсь позвонить прямо на базу переместить конструктор класса через производный двигаться конструктор класса а, сюрприз!...
В последнее время я много борюсь с конструкторами move и copy и, кажется, не могу найти awnser самостоятельно. Структура довольно проста. Класс OWUP, который содержит std:: unique_ptr для объекта (в данном примере int), класс One, который является простой оболочкой вокруг std:: vector OWUP и класс Two, которы...
Я хочу обновить свою память на условиях, при которых компилятор обычно автоматически генерирует конструктор по умолчанию, конструктор копирования и оператор присваивания. Я помню, что были некоторые правила, но я не помню, а также не могу найти авторитетный ресурс в интернете. Кто-нибудь может помочь?...