Commit 45c0f87af2466d4e510678f256bf50d20a9068ec

Authored by Grzegorz Jabłoński
1 parent d0e55e33

Bugfix

examples11/04-vectortmpl/vector.h
... ... @@ -38,7 +38,8 @@ private:
38 38 unsigned i;
39 39 try {
40 40 for (i = 0; i < size; i++)
41   - new (newdata + i) C(std::move(data[i]));
  41 +// new (newdata + i) C(std::move(data[i]));
  42 + new (newdata + i) C(data[i]);
42 43 } catch (...) {
43 44 destroy_array(newdata, i);
44 45 throw;
... ...
examples11/05-foldexpr/vector.h
... ... @@ -38,7 +38,8 @@ private:
38 38 unsigned i;
39 39 try {
40 40 for (i = 0; i < size; i++)
41   - new (newdata + i) C(std::move(data[i]));
  41 + new (newdata + i) C(data[i]);
  42 +// new (newdata + i) C(std::move(data[i]));
42 43 } catch (...) {
43 44 destroy_array(newdata, i);
44 45 throw;
... ...
examples11/06-template_metaprogramming/vector.h
... ... @@ -36,7 +36,8 @@ private:
36 36 unsigned i;
37 37 try {
38 38 for (i = 0; i < size; i++)
39   - new (newdata + i) C(std::move(data[i]));
  39 + new (newdata + i) C(data[i]);
  40 +// new (newdata + i) C(std::move(data[i]));
40 41 } catch (...) {
41 42 destroy_array(newdata, i);
42 43 throw;
... ... @@ -157,12 +158,12 @@ public:
157 158 }
158 159  
159 160 template <class T> std::tuple<C &> push_back(T &&s) {
160   - C &r = emplace_back(std::forward<C>(s));
  161 + C &r = emplace_back(std::forward<T>(s));
161 162 return std::tuple<C &>(r);
162 163 }
163 164  
164 165 template <class T, class... Args> auto push_back(T &&a, Args &&... args) {
165   - auto op1 = push_back(std::forward<C>(a));
  166 + auto op1 = push_back(std::forward<T>(a));
166 167 auto op2 = push_back(args...);
167 168 return std::tuple_cat(op1, op2);
168 169 }
... ...