Вопросы по теме '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 просмотров
schedule
08.07.2023
Когда использовать std::swap для потоков?
Пытаясь дать ответ на этот вопрос, text-file-handling-in-c дает ссылки на cplusplus.com . Я наткнулся на функцию std::swap для потоков типа fstream .
Итак, мой вопрос: какова цель функции подкачки, например. для «fstream» соответственно, в...
683 просмотров
schedule
28.04.2022
Реализация подкачки в идиоме копирования и подкачки
После Что такое идиома копирования и подкачки и Как предоставить функцию подкачки для моего класса , я попытался реализовать подкачку функция, как в последнем, приняла вариант ответа номер 2 (имея бесплатную функцию, которая вызывает функцию-член)...
769 просмотров
schedule
01.08.2022
Копировать и переместить идиому?
Используя идиому Copy & Swap , мы можем легко реализовать назначение копирования с высокой безопасностью исключений:
T& operator = (T other){
using std::swap;
swap(*this, other);
return *this;
}
Однако для этого требуется,...
3079 просмотров
schedule
16.02.2023
Что такое Правило четырех (с половиной)?
Для правильной обработки копирования объектов эмпирическим правилом является правило трех . В C++11 важна семантика перемещения, поэтому вместо этого используется Правило пяти . Однако в обсуждениях здесь и в Интернете я также видел ссылки на...
3597 просмотров
schedule
10.04.2023
Что делает `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