| 110 | //! Equivalent: for (auto& ai : a) { for (auto& bi : b) {...} } |
| 111 | template <typename... TContainers> |
| 112 | auto CartesianProduct(TContainers&&... containers) { |
| 113 | return NPrivate::TCartesianMultiplier<TContainers...>::CartesianMultiply( |
| 114 | std::forward<TContainers>(containers)..., std::make_index_sequence<sizeof...(TContainers)>{}); |
| 115 | } |