5#ifndef DERIVATIONFRAMEWORKTRIGGER_BUILDCOMBINATIONS_H
6#define DERIVATIONFRAMEWORKTRIGGER_BUILDCOMBINATIONS_H
24 template <
typename T,
typename PROJ = std::
identity >
36 template <
typename R,
typename PROJ = std::
identity>
37 std::vector<typename R::value_type>
sorted(
const R&
r, PROJ proj = {});
52 typename INNERPROJ = std::identity,
53 typename OUTERPROJ = std::identity>
55 std::vector<
RangedItr<
typename std::vector<T>::const_iterator>>& inputs,
56 INNERPROJ innerproj = {},
57 OUTERPROJ outerproj = {});
std::vector< size_t > vec
utility class that acts wraps a bidirectional iterator.
std::vector< typename R::value_type > sorted(const R &r, PROJ proj={})
Helper function to create a sorted vector from an unsorted range.
std::vector< std::vector< T > > getAllDistinctCombinations(std::vector< RangedItr< typename std::vector< T >::const_iterator > > &inputs, INNERPROJ innerproj={}, OUTERPROJ outerproj={})
Get all valid, unique combinations of distinct elements from the input ranges.
bool insertIntoSortedVector(std::vector< T > &vec, const T &ele, PROJ proj={})
Helper function for inserting an element into a sorted vector.