Suppose we want to create a C container similar to std::vector . It is a good idea to implement push_back by calling emplace_back , for example:
template <typename T> class C { public: ... template <typename Args...> void emplace_back(Args&&... args) { ...
or alternatively:
template <typename U> void push_back(U&& value) { emplace_back(std::forward(value)); }
?
source share