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

Шаблон класса 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> можете объяснить... подробнее

Показать сообщение отдельно
stima
495 / 345 / 43
Регистрация: 22.03.2011
Сообщений: 1,107
Завершенные тесты: 2

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

01.08.2014, 19:00. Просмотров 455. Ответов 3
Метки (Все метки)

Как мне написать такой шаблон.

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
template<typename WrappedType>
class Wrapper 
{
 
protected:
    template <typename R, typename... Args>
    void connect(R (WrappedType::*mem_func)(Args...), Args&&... args)
    {
        std::function<R(Args...)> 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;
    }
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.