Замена оператора ... Как реализовать ? - страница 3

 
Andrey Khatimlianskii:
Нормально сформулируйте задачу, и тут же получите решение. И перегружать операторы скорее всего не потребуется.

что тут не понятного ?

в настройках пользователь выбирает два условия

и в настройках выбирает как сравнивать их результаты через && или ||  

 
o_O:

в присядку ))


через bool переменные промежуточных расчётов.

или через бинарные деревья.  операнд1-оператор-операнд2.  И подменяйте оператор сколько хотите.  Хоть в степень возводите вместо &&.

Вы всё равно сами внутри код составляете, а не строку синтаксически разбираете.

И сделать можете как угодно.

Мне бы пример.
 
Vladimir Pastushak:
Мне бы пример.
enum enКакСравнить { ИЛИ, И };

input enКакСравнить каксравнить=И;


bool Условие(enКакСравнить как_сравнить)
{
 bool a1=MA > MA1;
 bool a2=MA > MA2;

 bool r=(как_сравнить==И)?(a1 && a2):(a1 || a2);
 return r;
}
 
o_O:

Да я знаю такой метод, но что если условий 10, все таким образом прописывать ?

Может есть способ проще ? 

 
Vladimir Pastushak:

Может есть способ проще ? 

конечно.

например можно копать от забора и до обеда.

 
o_O:

конечно.

например можно копать от забора и до обеда.

Спасибо.
 
Vladimir Pastushak:

Да я знаю такой метод, но что если условий 10, все таким образом прописывать ?

Может есть способ проще ? 

На основании чего происходит выбор того или иного условия?
 
Dmitry Fedoseev:
На основании чего происходит выбор того или иного условия?

если чел выбрал МА>МА1 то в оператор свич передается номер из енум

enum t
{
МАМА1 =0 // МА>МА1
} ;
input t mama = 0;

так пользователь выбирает условия из двух составляющих что то одно больше меньше или равно против другого 

функ(int d)
{ 
swich(d)
{
 case 0:  сравнение мувингов  МА>МА1  return true;
} 
} 

 

if(функ(int t) || / && функ(int k) ||/&& функ(int s) ||/&& функ(int l) ||/&& функ(int v)) 

 Вот и хотел программно менять операторы ... Так пользователь может сам комбинировать условия.. Но что то не могу придумать как городить сотню условий не вариант а способ должен быть...

 
Vladimir Pastushak:

если чел выбрал МА>МА1 то в оператор свич передается номер из енум

так пользователь выбирает условия из двух составляющих что то одно больше меньше или равно против другого 

 

if(функ(int t) || / && функ(int k) ||/&& функ(int s) ||/&& функ(int l) ||/&& функ(int v)) 

 Вот и хотел программно менять операторы ... Так пользователь может сам комбинировать условия.. Но что то не могу придумать как городить сотню условий не вариант а способ должен быть...

На способ мозгов надо много. Поэтому, если есть подходящий вариант, надо им пользоваться. 

Способ - в ините разбирать строку с выражением и городить матрешку из мудреного класса.

Сколько всего получается вариантов? Проще всего, без вскипания мозгов, написать скрипт-генератор дочерних классов со всеми вариантами. Если не тысячи вариантов.

 
Dmitry Fedoseev:

На способ мозгов надо много. Поэтому, если есть подходящий вариант, надо им пользоваться. 

Способ - в ините разбирать строку с выражением и городить матрешку из мудреного класса.

Сколько всего получается вариантов? Проще всего, без вскипания мозгов, написать скрипт-генератор дочерних классов со всеми вариантами. Если не тысячи вариантов.

Cпасибо!  Я искал способ проще...

Есть шаблоны функций, былиб шаблоны условий, можно было б покумекать а так ....