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

Идеи реализации класса Menu - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Инфиксная форма записи выражения http://www.cyberforum.ru/cpp-beginners/thread1776052.html
В файле задано выражение в инфиксной форме записи. В выражении могут быть целые положительные числа, знаки операций(*/+-), скобки. Написать программу, сохраняющую считанное выражение в двоичном дереве( в котором знаки операций будут родительскими вершинами, а числа- листьями), а также вычисляющую результат выражения. Дерево предоставить в виде отдельного класса (или классов). Результат выражения...
C++ Не работает замена символов в файле на нижний регистр Почему не работает код? По идее должен символы в файле заменить на нижний регистр. int main() { string way = "Example.txt"; fstream text; text.open(way, ios_base::in | ios_base::out); while (!text.eof()) { char a; a = text.get(); http://www.cyberforum.ru/cpp-beginners/thread1776050.html
C++ Локальные имена для файла
Локальные имена для файла, те которые объявлены как static или в безымянном namespace почему то доступны в другом файле. Почему это так или как это правильно тогда использовать?#ifndef HEADER_H #define HEADER_H #include <iostream> int i = 1; const int ci = 2; static int si = 3; static const int sci = 4;
Скрипт для запуска служб C++
Добрый день, Форумчане! За ранее извиняюсь, если пишу не в той теме, ибо не знал куда и пристроиться. Столкнулся с необходимостью написания скрипта, для проверки работы определённых служб, а в случае, если они отключены, то будет требоваться запуск. Не подскажете как именно можно реализовать такую задачу? P.s. хотелось бы ещё что бы опрос службы проходил через определённые промежутки времени. За...
C++ Напечатать слова последовательности, которые отличны от последнего слова http://www.cyberforum.ru/cpp-beginners/thread1775971.html
Здравствуйте! Мне нужна помощь с заданием. Я не могу вывести на экран слово отличное от последнего, а так же при максимальной последовательности учитывается точка. А так же иногда не учитывается первое слово. Если вводить его без повторений, то оно не отображается. Тема: Строки Дана последовательность, содержащая до 5 слов, в каждом из которых до 5 строчных латинских букв; между соседними...
C++ Icu итератор Здравствуйте. Подскажите как с помощью icu проитерировать посимвольно UnicodeString и на выходе получить то, что сразу можно в обычный string запихнуть. Нагуглил такой вариант: #include <unicode/unistr.h> #include <unicode/uchriter.h> /******/ icu::UnicodeString ustr("Привет Мир! Hello World! 世界,你好!"); const UChar *testText = ustr.getTerminatedBuffer(); ... подробнее

Показать сообщение отдельно
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,551
Записей в блоге: 1
Завершенные тесты: 2
05.07.2016, 14:29  [ТС]     Идеи реализации класса Menu
Croessmah, Собственно, новый вопрос, как член класса сделать шаблонным, не делая шаблонным весь класс?
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>
#include <string>
#include <functional>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
class Menu
{
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    Menu();
    //-----------------------------------------------------------------------------------
    template<class T>
    void        add(std::string name,std::function<T> item)
    {
        m_items.push_back(std::make_pair(name,item));
    }
    //-----------------------------------------------------------------------------------
    template<class... Args>
    void        get(int n,Args... args)
    {
        m_items[n](args...);
    }
    //-----------------------------------------------------------------------------------
private:
    //-----------------------------------------------------------------------------------
    template<class T>
    std::vector<std::pair<std::string,std::function<T>> m_items;
};
/////////////////////////////////////////////////////////////////////////////////////////
void func(int a, int b)
{
    std::cout << a + b << std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    Menu menu;
    menu.add("bla",std::function<void(int,int)>(func));
    menu.get(0,1,2);
}
Может я что-то не так делаю, но не вижу, что именно.
 
Текущее время: 04:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru