Добрый вечер, есть контейнеры с умными указателями, как их в другой контейнер перенести, желательно как-нибудь с предикатом навроде copy_if
#include <vector>
#include <memory>
using namespace std;
struct A {
A(int val) : mVal(val) {
}
~A() {
}
int val() const {
return mVal;
}
private:
int mVal;
};
int main(int argc, char *argv[])
{
shared_ptr<A> a1 = make_unique<A> (3);
shared_ptr<A> a2 = make_unique<A> (6);
shared_ptr<A> a3 = make_unique<A> (9);
vector<unique_ptr<A>> v1;
vector<unique_ptr<A>> v2;
v1.push_back( std::move(a1) );
v1.push_back( std::move(a2) );
v1.push_back( std::move(a3) );
}