Pass by Value C++ passes arguments by value int sum(std::vector v) { int result = 0; for (std::vector::size_type i = 0; i != v.size(); ++i) result += v[i]; return result; } Arguments can be safely modified Inefficient due to copying