From 622f0e03340bde131e93cb614dfe1a62bb558e1f Mon Sep 17 00:00:00 2001 From: Diane deGraft-Johnson Date: Wed, 25 Oct 2017 10:36:53 -0700 Subject: [PATCH] Adding Rvalue References Committing files from the Rval Ref book club presentation --- CMakeLists.txt | 8 +++++++ rvalue_refs.cpp | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 rvalue_refs.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..aae889b --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required (VERSION 3.1.0) +project(rvalue_refs) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_C_STANDARD 11) + +add_executable(rvalue_refs rvalue_refs.cpp) diff --git a/rvalue_refs.cpp b/rvalue_refs.cpp new file mode 100644 index 0000000..0e88731 --- /dev/null +++ b/rvalue_refs.cpp @@ -0,0 +1,56 @@ +#include +#include +#include + +using namespace std; + +vector retVector (const vector& v, int dataToAppnd) +{ + vector new_vec; + for (const auto& itr : v) { + new_vec.push_back(itr); + } + new_vec.push_back(dataToAppnd); + + return new_vec; +} + + vector demoRvalRef (vector v ) +{ + return v; +} + +int main() +{ + vector v = {1, 2, 3}; + int append = 4; + + std::cout << "Value of v is " << std::endl; + for (auto it = v.begin() - 1; it != v.end()-1; it++) { + std::cout << v[*it] << " "; + } + + std::cout << std::endl << std::endl; + v = retVector(v, append); + + std::cout << "Vector returned is " << std::endl; + for (auto it = v.begin() - 1; it != v.end()-1; it++) { + std::cout << v[*it] << " "; + + } + std::cout << std::endl << std::endl; + + + append = 5; + v = demoRvalRef(retVector(v, append)); + + std::cout << "Rval Ref Vector returned is " << std::endl; + for (auto it = v.begin() - 1; it != v.end()-1; it++) { + std::cout << v[*it] << " "; + + } + std::cout << std::endl << std::endl; + + + return 0; +}