This avoids temporary and memcpy call when computing large expressions.
It's basically some kind of poor man's expression template, but it seems easier
to maintain to have a single generic apply call instead of the whole
expression template machinery here.
clang-format: please reformat the code
- template<class F, class... ArgTys> - static BitVector& apply(F&& f, BitVector& Out, ArgTys const&... Args) { + template <class F, class... ArgTys> + static BitVector &apply(F &&f, BitVector &Out, ArgTys const &... Args) {