Gobelijn API documentation  - generated for commit a0cbea7
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros Pages
sum2.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of the gobelijn software.
3  * Gobelijn is free software: you can redistribute it and/or modify it
4  * under the terms of the GNU General Public License as published by the
5  * Free Software Foundation, either version 3 of the License, or any later
6  * version. Gobelijn is distributed in the hope that it will be useful, but
7  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
8  * or FITNESS FOR A PARTICULAR PURPOSE.
9  * See the GNU General Public License for details. You should have received
10  * a copy of the GNU General Public License along with the software. If not,
11  * see <http://www.gnu.org/licenses/>.
12  *
13  * Copyright 2012, Jan Broeckhove, CoMP/UA.
14  */
20 // BEGIN_SNIPPET{FullSource}
21 #include "Range.h"
22 #include <algorithm>
23 #include <vector>
24 
25 template <typename T>
26 class Accumulator
27 {
28 public:
29  explicit Accumulator(T t = T()) : fAccumulator(t) {}
30 
31  T operator()(T t) { return (fAccumulator += t); }
32 
33  T operator()() const { return fAccumulator; }
34 
35 private:
36  T fAccumulator;
37 };
38 
39 int main()
40 {
41  std::vector<int> v(3);
42  Accumulator<int> a;
43  v[0] = 1;
44  v[1] = 2;
45  v[2] = 3;
46  a = std::for_each(v.begin(), v.end(), a);
47  std::cout << make_range(v) << " sum: " << a() << std::endl;
48  return 0;
49 }
50 // END_SNIPPET{FullSource}
Range (see also boost Range library)
int main()
Definition: sum2.cpp:39
Range< Iter > make_range(Iter it1, Iter it2)
Definition: Range.h:34