Я думаю, что есть что-то, связанное с тем, что копирование экземпляра последнего объекта может вызвать исключение. При этом вы теряете свой объект, так как pop_back () удалил его из вашего контейнера. Лучше всего с несколькими строками кода:
std::vector<AnyClass> holds = {...} ;
try {
const AnyClass result = holds.pop_back(); // The copy Ctor throw here!
} catch (...)
{
// Last value lost here.
}