Форум программистов, компьютерный форум CyberForum.ru

Каким образом работает swap в приведенном коде? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция для проверки почтового адреса http://www.cyberforum.ru/cpp-beginners/thread1244628.html
Мне нужно написать функцию, которая проверяет правильно ли введен почтовый адрес. Условий корректности много. Например, символ "точка" не должен располагаться сразу после символа "@". Я это условие прописал так: void Chek(int n, char SX1) ... for(index=0;index<strlen(SX1);index++) { if(SX1=='@'&&SX1=='.') cout<<"Неверно написано"<<endl; } Или нужно, чтобы в адресе присутствовал...
C++ Пояснение к аргументам при вызове функции, и запрет конструктора по умолчанию Вобщем касательно конструктора такой код: class box { public: box(int t):z(t){y=6;} void Set(int u, float j){cout<<u<<j;}; int z; int y; http://www.cyberforum.ru/cpp-beginners/thread1244616.html
C++ Пример двоичного дерева
Здравствуйте! Возникла мысль попробовать реализовать двоичное дерево в c++ для этого решил сначала рассмотреть какие-нибудь примеры в сети... В общем возникли вопросы по синтаксису. template<class T> class TreeNode { protected: TreeNode *_lchild; TreeNode *_rchild; Т val; public: TreeNode(T); virtual ~TreeNode(void); friend class SearchTree<T>; // возможные...
Найти максимум и минимум в двумерном массиве C++
где ошибка Спрашивает, как заполнить двум массив, ищет max и min #include <iostream> #include <ctime> using namespace std;
C++ Сравнение двумерных матриц - разобрать код http://www.cyberforum.ru/cpp-beginners/thread1244597.html
Разобрать суть кода, что в нем описанно, функций int** create_matrix(int n, int m,int tip) { int**variable= NULL; //переменная variable = (int**)malloc(sizeof(int*)*n); for(int i=0;i<n;i++) variable=(int*)malloc(sizeof(int)*m); printf("Matrix_successfully_created\n",n,m);//матрицу успешно созданно rand_value(variable,n,m); //рандомное значение
C++ Определить загруженность ядер процессора Помогите определить загруженность ядер процессора (может как-нибудь получить эти данные из системы). подробнее

Показать сообщение отдельно
Renji
1533 / 981 / 239
Регистрация: 05.06.2014
Сообщений: 2,950
19.08.2014, 20:50     Каким образом работает swap в приведенном коде?
Каким образом работает swap в коде ниже?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<list>
#include<memory>
#include<utility>
struct test
{
    std::list<std::unique_ptr<int> >a,b;
};
 
int main()
{
    test x,y;
    std::swap(x,y);
    return 0;
}
Как я понимаю, стандартный swap должен действовать по алгоритму:
C++
1
2
3
4
5
6
void swap(test&A,test&B)
{
    test Z=A;
    A=B;
    B=Z;
}
Но объекты класса test содержат в себе unique_ptr, а unique_ptr копировать нельзя. Значит, нельзя создать и временный объект Z. Но swap загадочным образом компилируется все равно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru