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

Какой паттерн подойдет, чтобы избежать длинных ветвлений? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не инициализируются структуры без конструктора http://www.cyberforum.ru/cpp/thread1780893.html
Доброго времени суток. Прошу объяснить следующий момент) struct vert { vert(float _x, float _y, float _z) : x(_x), y(_y), z(_z) {} float x, y, z; }; int main() { vert* vertices = new vert
C++ Функция с типом char, которая должна возвращать интовое значение Всем привет. Странное дело. Есть функция с типом char, которая должна возвращать интовое значение в виде площади квадрата (так по заданию нужно). написал следующий код: #include <iostream> using namespace std; char ArOfShp (int); void main () { int sqsd; cout << "Enter square side: "; cin >> sqsd; http://www.cyberforum.ru/cpp/thread1780888.html
Проинциализировать и использовать массив указателей на функции C++
Пытаюсь проинциализировать и использовать массив указателей на функции. Компилятор упорно выдает ошибку, даже если следовать многочисленным примерам в интернете и книгах: myclass.h void a(); void b(); void c(); void (*funPtrsArray)() = {a, b, c};//ошибка "a brace-enclosed initializer is not allowed here before '{' token" //ISO C++ forbids...
Как закрыть поток после вызова detach()? C++
Всем здрасьте ! С join всё понятно, программа ждёт, когда завершится этот поток. Допустим я вызвал метод detach, как мне поток закрыть ? void My() { // actions
C++ WinAPI Как выключить монитор программно? http://www.cyberforum.ru/cpp/thread1780852.html
Имеется 2 противоположных вопроса: * Как выключить монитор програмно? При этом должно остаться срабатывание на мышь и клаву. * Как не дать таймеру сработать пока работает приложение?
C++ Что делает Thread::joinable? Всем здрасьте ! Объясните мне, пожалуйста, что именно делает этот метод и как может мне помочь ? std::thread::joinable подробнее

Показать сообщение отдельно
tapochka
34 / 34 / 8
Регистрация: 25.04.2014
Сообщений: 449
14.07.2016, 23:57  [ТС]     Какой паттерн подойдет, чтобы избежать длинных ветвлений?
вот думал что-то типа tag-dispatching... прикрутить бы(из инета код)
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
namespace std {
  struct input_iterator_tag { };
  struct bidirectional_iterator_tag : input_iterator_tag { };
  struct random_access_iterator_tag : bidirectional_iterator_tag { };
 
  namespace detail {
    template <class InputIterator, class Distance>
    void advance_dispatch(InputIterator& i, Distance n, input_iterator_tag) {
      while (n--) ++i;
    }
 
    template <class BidirectionalIterator, class Distance>
    void advance_dispatch(BidirectionalIterator& i, Distance n, 
       bidirectional_iterator_tag) {
      if (n >= 0)
        while (n--) ++i;
      else
        while (n++) --i;
    }
 
    template <class RandomAccessIterator, class Distance>
    void advance_dispatch(RandomAccessIterator& i, Distance n, 
       random_access_iterator_tag) {
      i += n;
    }
  }
 
  template <class InputIterator, class Distance>
  void advance(InputIterator& i, Distance n) {
    typename iterator_traits<InputIterator>::iterator_category category;
    detail::advance_dispatch(i, n, category);
  }
}
Добавлено через 2 минуты
в моем случае просто идет работа с view, т.е. быстродействие совсем не обязательно... можно экспериментировать со свистелками-перделками
 
Текущее время: 14:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru