lessons/change_signature.cpp (28 lines of code) (raw):

#include <iostream> #include <vector> #include <algorithm> template <typename Range> void print(const Range& r) { auto iter = begin(r); const auto iterEnd = end(r); if (iter != iterEnd) std::cout << *iter; while (++iter != iterEnd) std::cout << ", " << *iter; std::cout << '\n'; } template <typename Range> void bitwiseCopy(Range& dst, const Range& src) { const auto n = end(src) - begin(src); std::memmove(&dst[0], &src[0], n * sizeof(src[0])); } int main() { std::vector<int> v = {1, 1, 2, 3, 5, 8, 13}; print(v); std::vector<int> w(v.size()); bitwiseCopy(w, v); print(w); }