Форум программистов, компьютерный форум, киберфорум
Наши страницы

[дизайн и эволюция] провалы в variadic конструкторы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ MPI задача коммивояжера методом ветвей и границ http://www.cyberforum.ru/cpp/thread1637290.html
помогите реализацией задача коммивояжера методом ветвей и границ на вычислительном кластере. может у кого то готовая программа есть или пример
C++ Нужна программа Логическая игра "Маджонг" может кто делал Игра Маджонг, В ходе игры необходимо очистить игровое поле, убирая одинаковые фишки. удаляться они могут только в том случае, если у фишки открыта хотя бы одна сторона. Сложность игры зависит от... http://www.cyberforum.ru/cpp/thread1637074.html
C++ Скомпилировать OpenPegasus под Win32. C/C++
Помогите скомпилировать OpenPegasus под Win32. C/C++ Есть проект OpenPegasus под Unix. Нужно его скомпилировать под Windows. Цель - поднять WMI/Wbem service provider на Win32. Исходники...
Снимок с веб-камеры C++
нашел такой пример, который выводит на окно видео в режиме онлайн с вэб камеры http://pastebin.com/c9LCaLRT (из за ограничения количества символов в сообщении пришлось залить код на пастебин) ...
C++ При расшифровке RSA-сообщений на клиенте происходит ошибка http://www.cyberforum.ru/cpp/thread1634821.html
разрабатываю приложение на основе протокола подбрасывания честной монеты с использованием открытых и закрытых ключей, конкретно - ключей RSA. Сгенерила две пары ключей RSA, как и требуется, с...
C++ Написать программу для наххождения НОД, НОК Разработка Windows-приложения (в Qt) определения наибольшего общего делителя, наименьшего общего кратного и простых чисел для заданных больших чисел. Именно чтобы можно было вводить большие числа,... подробнее

Показать сообщение отдельно
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
02.08.2016, 10:38
Voivoid, как только появится, например, volatile, вариадик снова сожрет всё, вместо ошибки.
Или если копировать будем от наследника, то тоже вариадик всё сожрет:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
 
struct foobar {
 
  template<typename...Args>
  foobar(Args&&...){ std::cout << "variadic" << std::endl;}
 
 
  foobar() {std::cout << "ctor" << std::endl;}
  foobar(foobar& f) : foobar(static_cast<const foobar&>(f)) {}
  foobar(const foobar&) {std::cout << "copy" << std::endl;}
  foobar(foobar&&) {std::cout << "move" << std::endl;}
 
};
 
 
struct X: public foobar{
    X() = default;
    X(const X &src):foobar(src)/*без приведения типа*/{}
};
 
 
template <>
foobar::foobar<foobar&>(foobar&) = delete;
 
template <>
foobar::foobar<const foobar&>(const foobar&) = delete;
 
template <>
foobar::foobar<foobar&&>(foobar&&) = delete;
 
 
int main()
{
    foobar f;
    foobar f1(1,2,3,4,5);
    volatile foobar f2= f;
    foobar f5(f2);//Сожрал
    foobar f3(std::move(f1));
    X x1;
    X x2(x1);//сожрал
}
http://rextester.com/XAHEA99396

В моем коде для поддержки такого случая
нужно будет использовать is_base_of вместо is_same:
http://rextester.com/NQJ1094
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru