假设我们要设计一个C
类似于std::vector
. push_back
通过调用来实现是不是一个好主意emplace_back
,例如:
template <typename T>
class C {
public:
...
template <typename Args...>
void emplace_back(Args&&... args) {
... // uses T(std::forward<Args>(args)...) internally
}
void push_back(T value) {
emplace_back(std::move(value));
}
...
};
或者,或者:
template <typename U>
void push_back(U&& value) {
emplace_back(std::forward(value));
}
?