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

Шаблон класса Wrapper - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Очередь «первый вошел — первый вышел» (FIFO) http://www.cyberforum.ru/cpp-beginners/thread1237359.html
Очередь — это устройство для хранения данных, похожее на стек. Отли-чие в том, что в стеке последний сохраненный элемент будет первым извлеченным, тогда как в очереди первый сохраненный элемент будет...
C++ Кроссплатформенное приложение Сразу хочу сказать что с С++ только знакомлюсь (есть опыт в web языках). Вот к примеру мне нужно сделать такую вот задачку - по экрану передвигается объект с помощью стрелок и мыши, а так же есть... http://www.cyberforum.ru/cpp-beginners/thread1237357.html
C++ Type name expected
Ребят, туплю, что здесь не так с типом имени? int InitializeNodes(char *pdata, DWORD dwSize)
Передача аргументов в функцию и возврат значения C++
Зачем нужны аргументы функции? Что делает return, если задать ненулевое значение? Как из main() перенести переменную в другую функцию? Подскажите, пожалуйста.
C++ Как не допустить повторное использование кода http://www.cyberforum.ru/cpp-beginners/thread1237302.html
Здравствуйте. У меня есть один заголовочный файл, и в нем присутствует пара констант и функция: #ifndef H_H #define H_H ....... const std::string CARDS_NAMES = {
C++ Не могу понять назначение двух библиотек привет вы извените конечно покажусь просто нубом каким-то но смотрел везде в гугле здесь не могу понять для чего эти библиотеки #include < "stdafx.h"> #include <iomanip> можете объяснить... подробнее

Показать сообщение отдельно
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
01.08.2014, 19:29
Цитата Сообщение от stima Посмотреть сообщение
Как мне написать такой шаблон.
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
template<typename WrappedType>
class Wrapper
{
    template <typename FType>
    struct Extract;
 
    template <typename R, typename... Args>
    struct Extract<R(Args...)>
    {
        typedef R (WrappedType::*mem_func_type)(Args...);
    };
protected:
    template <typename FType, typename... Args>
    void connect(typename Extract<FType>::mem_func_type mem_func, Args &&  ...args)
    {
        std::function<FType> f = std::bind(mem_func, static_cast<WrappedType*>(this), std::forward<Args>(args)...);
    }
};
 
class Test : public Wrapper<Test>
{
 
public:
    Test()
    {
        connect<void()>(&Test::a);
        connect<void(int)>(&Test::a1, std::placeholders::_1);
    }
 
    void a()
    {
        std::cout << "Test::a" << std::endl;
    }
 
    void a1(int _1)
    {
        std::cout << "Test::a1 " << _1 << std::endl;
    }
};
Оно?
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru