Skip to content

Commit 2573ab8

Browse files
committed
Removed reference requirements, added test_chain to test chains
1 parent e823723 commit 2573ab8

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

inc/aggregators.hpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ namespace fpgen {
2828
*/
2929
template <typename T, typename... Args,
3030
template <typename...> typename Container>
31-
Container<T, Args...> &aggregate_to(generator<T> &gen,
31+
Container<T, Args...> &aggregate_to(generator<T> gen,
3232
Container<T, Args...> &out) {
3333
while (gen) {
3434
out.push_back(gen());
@@ -55,7 +55,7 @@ Container<T, Args...> &aggregate_to(generator<T> &gen,
5555
template <typename TKey, typename TVal, typename... Args,
5656
template <typename...> typename Container>
5757
Container<TKey, TVal, Args...> &
58-
tup_aggregate_to(generator<std::tuple<TKey, TVal>> &gen,
58+
tup_aggregate_to(generator<std::tuple<TKey, TVal>> gen,
5959
Container<TKey, TVal, Args...> &out) {
6060
while (gen) {
6161
std::tuple<TKey, TVal> tup = gen();
@@ -75,7 +75,7 @@ tup_aggregate_to(generator<std::tuple<TKey, TVal>> &gen,
7575
* \param[in,out] gen The generator to iterate over.
7676
* \returns The amount of elements in the generator.
7777
*/
78-
template <typename T> size_t count(generator<T> &gen) {
78+
template <typename T> size_t count(generator<T> gen) {
7979
size_t cnt = 0;
8080
while (gen) {
8181
gen();
@@ -102,7 +102,7 @@ template <typename T> size_t count(generator<T> &gen) {
102102
* \returns The final accumulator value.
103103
*/
104104
template <typename TOut, typename TIn, typename Fun>
105-
TOut fold(generator<TIn> &gen, Fun folder) {
105+
TOut fold(generator<TIn> gen, Fun folder) {
106106
TOut value = {};
107107
while (gen) {
108108
value = folder(value, gen());
@@ -129,7 +129,7 @@ TOut fold(generator<TIn> &gen, Fun folder) {
129129
* \returns The final accumulator value.
130130
*/
131131
template <typename TOut, typename TIn, typename Fun>
132-
TOut fold(generator<TIn> &gen, Fun folder, TOut initial) {
132+
TOut fold(generator<TIn> gen, Fun folder, TOut initial) {
133133
TOut value(initial);
134134
while (gen) {
135135
value = folder(value, gen());
@@ -157,7 +157,7 @@ TOut fold(generator<TIn> &gen, Fun folder, TOut initial) {
157157
* now the output value.
158158
*/
159159
template <typename TOut, typename TIn, typename Fun>
160-
TOut &fold_ref(generator<TIn> &gen, Fun folder, TOut &initial) {
160+
TOut &fold_ref(generator<TIn> gen, Fun folder, TOut &initial) {
161161
while (gen) {
162162
initial = folder(initial, gen());
163163
}
@@ -175,7 +175,7 @@ TOut &fold_ref(generator<TIn> &gen, Fun folder, TOut &initial) {
175175
* \param[in,out] gen The generator to sum over.
176176
* \returns The sum of all elements.
177177
*/
178-
template <typename T> T sum(generator<T> &gen) {
178+
template <typename T> T sum(generator<T> gen) {
179179
T accum = {};
180180
while (gen) {
181181
accum = accum + gen();
@@ -195,7 +195,7 @@ template <typename T> T sum(generator<T> &gen) {
195195
* \param[in,out] gen The generator to iterate over.
196196
* \param[in] func The function to use.
197197
*/
198-
template <typename T, typename Fun> void foreach (generator<T> &gen, Fun func) {
198+
template <typename T, typename Fun> void foreach (generator<T> gen, Fun func) {
199199
while (gen) {
200200
func(gen());
201201
}

inc/manipulators.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ namespace fpgen {
2525
* mapping function.
2626
*/
2727
template <typename TIn, typename Fun>
28-
auto map(generator<TIn> &gen, Fun func)
28+
auto map(generator<TIn> gen, Fun func)
2929
-> generator<typename std::invoke_result<Fun, TIn>::type> {
3030
while (gen) {
3131
co_yield func(gen());
@@ -47,7 +47,7 @@ auto map(generator<TIn> &gen, Fun func)
4747
* \returns A new generator containing tuples of values from both generators.
4848
*/
4949
template <typename T1, typename T2>
50-
generator<std::tuple<T1, T2>> zip(generator<T1> &gen1, generator<T2> &gen2) {
50+
generator<std::tuple<T1, T2>> zip(generator<T1> gen1, generator<T2> gen2) {
5151
while (gen1 && gen2) {
5252
co_yield {gen1(), gen2()};
5353
}
@@ -70,7 +70,7 @@ generator<std::tuple<T1, T2>> zip(generator<T1> &gen1, generator<T2> &gen2) {
7070
* except those not matching the predicate.
7171
*/
7272
template <typename T, typename Pred>
73-
generator<T> filter(generator<T> &gen, Pred p) {
73+
generator<T> filter(generator<T> gen, Pred p) {
7474
while (gen) {
7575
T val(gen());
7676
if (p(val))

test/src/test_chain.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#include "aggregators.hpp"
2+
#include "generator.hpp"
3+
#include "manipulators.hpp"
4+
#include "sources.hpp"
5+
#include "gmock/gmock.h"
6+
#include "gtest/gtest.h"

0 commit comments

Comments
 (0)