Improve emplace_back to return reference

This is done in C++17
This commit is contained in:
Baptiste Wicht 2016-09-11 21:00:35 +02:00
parent c01d9b799a
commit 823b946a08

View File

@ -196,17 +196,21 @@ public:
++_size; ++_size;
} }
void emplace_back(){ value_type& emplace_back(){
ensure_capacity(_size + 1); ensure_capacity(_size + 1);
new (&data[_size++]) T(); new (&data[_size++]) T();
return back();
} }
template<typename... Args> template<typename... Args>
void emplace_back(Args... args){ value_type& emplace_back(Args... args){
ensure_capacity(_size + 1); ensure_capacity(_size + 1);
new (&data[_size++]) T{std::forward<Args>(args)...}; new (&data[_size++]) T{std::forward<Args>(args)...};
return back();
} }
void pop_back(){ void pop_back(){