19template <
size_t N,
typename = std::make_index_sequence<N>>
struct RefTupleHelper;
54 const size_t total_size = first.size() + (rest.size() + ...);
56 result.reserve(total_size);
virtual size_t get_destination_columns_fingerprint() const
virtual ~InteractionBuilderInterface()=default
virtual void process(TraceContainer &trace)=0
auto get_multiple(const std::array< ColumnAndShifts, N > &cols, uint32_t row) const
std::array< FF, N > get_multiple_as_array(const TraceContainer &trace, const std::array< ColumnAndShifts, N > &cols, uint32_t row)
typename detail::RefTupleHelper< N >::type RefTuple
void order_jobs_by_destination_columns(std::vector< std::unique_ptr< InteractionBuilderInterface > > &jobs)
std::vector< T > concatenate_jobs(std::vector< T > &&first, auto &&... rest)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
TUPLET_INLINE constexpr decltype(auto) get(Tup &&tup)