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

[дизайн и эволюция] провалы в 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) определения наибольшего общего делителя, наименьшего общего кратного и простых чисел для заданных больших чисел. Именно чтобы можно было вводить большие числа,... подробнее

Показать сообщение отдельно
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
13.01.2016, 19:28
Цитата Сообщение от ct0r Посмотреть сообщение
пример кода
Наверное не совсем то, о чем он говорил, но с ними (с вариадик конструкторами) можно, например, вот такие штуки проворачивать (ключевое выделил комментарием):
Кликните здесь для просмотра всего текста

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
43
44
45
46
47
48
49
50
51
#include <cstdio>
#include <tuple>
#include <utility>
#include <functional>
 
template <typename ...F>
class C
{
public:
    C(std::tuple<F...> const & args)
        : C(args, std::make_index_sequence<sizeof...(F)>{})
    { }
    
    void operator()() const
    {
        for(auto && f : m_funcs)
            f();
    }
    
private:
    template <typename R, typename ...Args>
    static auto autobind(R (f)(Args...))
    {
        return std::bind(f, Args()...);
    }
  
    template <size_t ...Indices>
    C(std::tuple<F...> const & args, std::index_sequence<Indices...>) // <---- здесь
        : m_funcs{ autobind(std::get<Indices>(args))... }
    { }
        
    std::function<void()> m_funcs[sizeof...(F)];
};
 
template <typename ...F>
auto make_funclist(F ...f)
{
    return C<F...>{ std::make_tuple(f...) };
}
 
void f1()    
{ std::printf("1\n"); }
void f2(int) 
{ std::printf("2\n"); }
void f3(int, double) 
{ std::printf("3\n"); }
 
int main()
{
    make_funclist(f1, f2, f3)();
}
http://rextester.com/YXXUI48392
6
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru