Есть контейнер с указателями, его нужно преобразовать в контейнер объектов, т. е. просто разыменовать каждый указатель. Сейчас я делаю это с помощью transform и лямбды.
vector<GameObject> ToVector(
const set<GameObject*, DereferenceCompare<GameObject, greater>> &cont)
{
vector<GameObject> res(size(cont));
transform(cbegin(cont), cend(cont), begin(res), [](GameObject *const p) {
return *p;
});
return res;
}
Есть ли способ сократить код еще больше, может быть какая нибудь стандартная функция есть, которая проводит разыменование указателя?