Ik wil de return data van een functie zonder onnodige stack copies in een vector duwen, en dacht hiervoor een reference variable te gebruiken. Zie hieronder.
Bestaat er geen cleanere oplossing? Ik heb het gevoel dat ik hier onnodige omwegen neem.
(ik duw het niet onmiddellijk in de vector omdat ik nog even doStuff wil aanroepen zonder in de vector te moeten gaan)
Bestaat er geen cleanere oplossing? Ik heb het gevoel dat ik hier onnodige omwegen neem.
(ik duw het niet onmiddellijk in de vector omdat ik nog even doStuff wil aanroepen zonder in de vector te moeten gaan)
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #include <vector> using std::vector; class HugeObj{ public: HugeObj(unsigned int i = 0) : i_(i){} void doStuff() { /* ... */} private: unsigned int i_; }; HugeObj produce(unsigned int i){ return HugeObj(i); } int main(int argc, char* argv[]) { HugeObj& current = HugeObj(); vector<HugeObj> storage; unsigned int i = 0; while(i!=100){ current = produce(i); current.doStuff(); storage.push_back(current); ++i; } } |