Имам програма, която преминава през няколко точки от данни, извършва операция върху всяка точка от данни и връща резултат за всяка точка от данни. Казвам,
for(int i=1;i<LEN-1;++i)
result[i]=operate(userfunc,i);
Вътрешно мога да дефинирам няколко променливи, които съдържат стойностите на различни съседи на точката от данни.
double operate(string userfunc, int i){
double next=data[i+1];
double prev=data[i-1];
double me=data[i];
userfunc(me,prev,next);
}
Представям си, че потребителят предоставя входен низ, съдържащ математическата операция, която иска да изпълни, заедно с променливите, с които иска да работи, като например:
0.5+me*min(prev,next)
Въпросът ми тогава е дали съществува библиотека, която да улесни анализирането на въведеното от потребителя. Настоящите ми мисли включват използването на Boost.Spirit или редица регулярни изрази. Но може би има по-лесен начин.