diff --git a/cpl/inc/container.h b/cpl/inc/container.h index 9df9c98..4a7ed83 100644 --- a/cpl/inc/container.h +++ b/cpl/inc/container.h @@ -128,10 +128,10 @@ auto alternating_insertion(Args&&... args) { // 5-arg -> Treat arguments as iterators, e.g. (first1, last1, first2, last2, result) auto [first1, last1, first2, last2, result] = [](Args&&... args) { if constexpr (sizeof...(args) == 3) { - const auto&& [in1, in2, out] = std::forward_as_tuple(args...); - return std::forward_as_tuple(in1.begin(), in1.end(), in2.begin(), in2.end(), out.begin()); + auto&& [in1, in2, out] = std::forward_as_tuple(args...); + return std::tuple(in1.begin(), in1.end(), in2.begin(), in2.end(), out.begin()); } else if constexpr (sizeof...(args) == 5) { - return std::forward_as_tuple(args...); + return std::tuple(std::forward(args)...); } else { static_assert(false, "Invalid number of arguments"); } diff --git a/cpl/inc/tree.h b/cpl/inc/tree.h index 8a742fe..0394d95 100644 --- a/cpl/inc/tree.h +++ b/cpl/inc/tree.h @@ -9,6 +9,7 @@ #include "xcore.h" +#include #include #include #include diff --git a/tests/cpl/container_alternating_insertion/test.cpp b/tests/cpl/container_alternating_insertion/test.cpp index f56011c..b7d0a4b 100644 --- a/tests/cpl/container_alternating_insertion/test.cpp +++ b/tests/cpl/container_alternating_insertion/test.cpp @@ -9,7 +9,6 @@ int main() { using namespace std; using namespace cpl; - // Args by iterator { vector first_input{}; vector second_input{};