Sprout で constexpr fused
最近 Sprout をあんまり触っていなかったんですが、いつの間にか実装されていました。
使い方は Boost.Fusion と同じですね。
[ソース]
#include <sprout/functional.hpp> #include <sprout/tuple.hpp> #include <sprout/string.hpp> struct sum{ template<typename String> constexpr float operator ()(int a, String s, float f) const{ return a + s.length() + f; } }; int main(){ static_assert(sum()(10, sprout::to_string("homu"), 4.25f) == 18.25, ""); static constexpr auto func = sprout::make_fused(sum()); static constexpr auto args = sprout::make_tuple(10, sprout::to_string("homu"), 4.25f); static_assert(func(args) == 18.25f, ""); return 0; }