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

Десять возможностей C++11, которые должен использовать каждый C++ разработчик - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Лямбда не допускает auto http://www.cyberforum.ru/cpp/thread890370.html
Всем привет! Имеем код: #include <iostream> #include <vector> #include <algorithm> #include <numeric> int main()
C++ Вызов через указатель на функцию-член Всем экспертам привет :) Разбавим раздел, так сказать. Задался тут таким вопросом: Есть класс, в котором объявлено поле типа "указатель на функцию-член" : struct C { void (C::*m)(); ... }; http://www.cyberforum.ru/cpp/thread874860.html
C++ std::filesystem && std::asio и пр
Пытался найти хоть какие-то сроки включения всего этого в стандарт (так же ожидается lexical_cast, any, string_algo и т.д.) и вообщем везде написано разное, проскакивает инфа о 2017 годе... Как-то не слишком оптимистично, кто-то может подсказать какие-либо сведения по этому поводу (желательно с пруф линками)?
Многомерный вектор C++
Необходимо разработать шаблон, который будет реализовывать функционал n-мерного массива, то есть, во время выполнения нужно изменять колличество измерений и размерность каждого. Словом, то же самое, что vector, только n-мерный. Подскажите, есть что-то такое готовое? Если нет, как такое можно написать? Писать на статике, естественно, не подходит, и выделять всю память при изменении размера тоже...
C++ Как реализован unordered_map? http://www.cyberforum.ru/cpp/thread602581.html
Собственно, интересна именно практическая сторона вопроса, как реализуется идеальное хеширование за O(1) в среднем ясно, об этом можно почитать в том же Кормене. Понятно, что реализации в каждом компиляторе могут быть разными. Мне интересно, как это вообще можно написать. Если кто знает - расскажите, пожалуйста.
C++ Поделитесь результатами компилирования следующего кода всем привет! нужно определить, какими компиляторами поддерживаются встроенные функции __is_pod() и __is_enum(). согласно нагугленому мною, они должны поддерживаться GCC начиная с 4.4.3. (это я уже проверил), CLang начиная с 2.8, касательно Intel и MSVC я так и не понял начиная с каких версий... интересуют: 1. CLang 2. MSVC 3. Intel подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
13.06.2013, 14:24     Десять возможностей C++11, которые должен использовать каждый C++ разработчик
Tulosba, Утечка только в случае, если мы муваем один объект в себя же.
rhs это lvalue. И его адрес будет равен this. rvalue станет только при раскладе, что мы юзаем forward/move.

C++
1
2
3
4
5
6
7
8
   Pointer& operator = (Pointer&& rhs)
   {
      assert((this != &rhs) && "Invalid move operation");
      std::swap(rhs.pointer_, pointer_);
      rhs.pointer_ = nullptr;
   }
 
   ptr = std::move(ptr);
ассерт сработает.

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
 
class C
{
public:
   C() {}
   C(C&& rhs)
   {
      std::cout << "Move" << std::endl;
   }
   C(const C& rhs)
   {
      std::cout << "Copy" << std::endl;
   }
};
 
class D
{
public:
   D(C&& c_) : c(c_) {}
private:
   C c;
};
 
int main()
{
   C c;
   D d(std::move(c)); 
}
Вывод будет Copy
C++
1
D(C&& c_) : c(std::move(c_)) {}
Вывод будет Move.
 
Текущее время: 06:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru