Форум программистов, компьютерный форум 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
Сообщений: 459
14.07.2016, 23:46  [ТС]     Какой паттерн подойдет, чтобы избежать длинных ветвлений?
Цитата Сообщение от Croessmah Посмотреть сообщение
как вариант - сделать какой-нибудь any с реализацией type erasure,
запихать туда std::function и сделать map/vector/array из any с разными "функциями" внутри.
ну имелось ввиду не только с++... если любой ооп-поддерживаемый язык брать

хотя ваша идея прикольная... да и мастерить никакой any не надо, все же есть в бусте по крайней мере...

Добавлено через 2 минуты
Цитата Сообщение от hoggy Посмотреть сообщение
ну если вам нужен ооп ради ооп, и ради этого вы готовы просадить перфоманс,
замедлив работу без какой либо необходимости,
ну просто в моем случае один метод ну слишком уродский получается через ветвления

Цитата Сообщение от hoggy Посмотреть сообщение
кстати, белая магия компилятора так же способна в некоторых случаях
представить свитч-кейс в виде ассоциативного массива.
да читал вроде всегда так компилятор поступает... не проверял правда

Добавлено через 1 минуту
Цитата Сообщение от DrOffset Посмотреть сообщение
tapochka, ООП-шное - это передавать не интовое состояние в класс, а Actor, у которого есть соответствующе определенная операция по работе с vec.
можете плз на коленках набросок кинуть?
 
Текущее время: 03:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru