New emplace_back signature

Viewed 119

The signature of the emplace_back method for std::vector has been updated to return a reference:

template< class... Args >
constexpr reference emplace_back( Args&&... args );

While I can find many (older) posts on why this isn't needed or even a bad design I cannot find sources on the rationale for the change.

  • Why did this update happen? If the apparent "gives an easier to use interfece" holds, why didn't push_back get an update as well?
  • Doesn't it complicate exception-safety requirements by complicating the interface?

I'm also searching for the paper that introduced the change, if you could point me to it, it would be appreciated.

0 Answers
Related