Вопросы по теме 'copy-and-swap'

Назначение через копирование и обмен против двух блокировок
Заимствуем пример Говарда Хиннанта и модифицируем его для использования копирования и замены , это op= потокобезопасный? struct A { A() = default; A(A const &x); // Assume implements correct locking and copying. A& operator=(A...
1904 просмотров
schedule 02.04.2022

функция-член обмена общими друзьями
В красивом ответе на идиому копирования и обмена есть фрагмент кода, мне нужна небольшая помощь: class dumb_array { public: // ... friend void swap(dumb_array& first, dumb_array& second) // nothrow { using std::swap;...
32386 просмотров
schedule 18.09.2023

Можно ли иметь метательную реализацию swap-члена?
Общая рекомендация при написании классов (с использованием идиомы копирования и подкачки) состоит в том, чтобы предоставить функцию члена подкачки без выбрасывания. ( Effective C++, 3-е издание, пункт 25 и другие ресурсы) Однако что, если я не...
320 просмотров

Когда использовать std::swap для потоков?
Пытаясь дать ответ на этот вопрос, text-file-handling-in-c дает ссылки на cplusplus.com . Я наткнулся на функцию std::swap для потоков типа fstream . Итак, мой вопрос: какова цель функции подкачки, например. для «fstream» соответственно, в...
683 просмотров

Реализация подкачки в идиоме копирования и подкачки
После Что такое идиома копирования и подкачки и Как предоставить функцию подкачки для моего класса , я попытался реализовать подкачку функция, как в последнем, приняла вариант ответа номер 2 (имея бесплатную функцию, которая вызывает функцию-член)...
769 просмотров

Копировать и переместить идиому?
Используя идиому Copy & Swap , мы можем легко реализовать назначение копирования с высокой безопасностью исключений: T& operator = (T other){ using std::swap; swap(*this, other); return *this; } Однако для этого требуется,...
3079 просмотров
schedule 16.02.2023

Что такое Правило четырех (с половиной)?
Для правильной обработки копирования объектов эмпирическим правилом является правило трех . В C++11 важна семантика перемещения, поэтому вместо этого используется Правило пяти . Однако в обсуждениях здесь и в Интернете я также видел ссылки на...
3597 просмотров

Что делает `std::swap`, когда применяется к этим объектам?
Код using namespace std; class A { private: vector<int> a; public: A(vector<int> x):a(x){} string toString() { string s; for (auto& element : a) { s += to_string(element) + " ";...
709 просмотров
schedule 19.01.2023