Böyle bir şey yapmanıza izin veren bir kütüphane bilen var mı? magic_functor kütüphanesi tarafından sağlanan functor ve a ve b olanC++ matematiksel/aritmetik ifadeleri değerlendirmek için functor kütüphanesi
std::transform(vecA.begin(), vecA.end(),
vecB.begin(),
vecOutput.begin(),
// run-time specified expression
magic_functor<float>("exp(a/(b+3))")
);
VECA ve vecB ile tekrarlanır.
Kendi kendime bir şeyle gelebilirim (ve bunu yaparken çok fazla eğlenceler olurdu), ama muhtemelen tekerleği yeniden icat etmekten kaçınmak daha iyidir (ayrıca patronum beni öldürür). Web'de arama yapmak için biraz zaman harcadık, ancak faturaya uyan bir şey bulamadık.
Esnek ve hızlı olması gerekir, bu nedenle yalnızca bir kez dizeyi ayrıştıran bir functor yaklaşımı (örneğin, inşaatta dahili olarak bir yürütme yığını oluşturur) ideal olur, ancak diğer çözümlere açıktır.
ntion o. – chris
Korkarım ki ihtiyacınız olan ikili-functor ara yüzü ile böyle bir şey yapacak herhangi bir kütüphane öneremem; Ancak, 'exp (a/(b + 3)) 'i kullanan lambda ifadeleri yazmak oldukça basit olurdu. Muhtemelen pek çok yerde tekrarlamak gerekirse, en karmaşık çözüm değil, ama okunabilirlik devam ettiği sürece bana Tamam görünüyor. –