Comment puis-je utiliser un custom deleter avec un std::unique_ptr membre?

J'ai une classe avec un unique_ptr membre.

class Foo {
private:
    std::unique_ptr<Bar> bar;
    ...
};

Le Bar est un tiers de la classe qui a une fonction create() et destroy() fonction.

Si je voulais utiliser une std::unique_ptr avec elle dans un support seule fonction que je pouvais faire:

void foo() {
    std::unique_ptr<Bar, void(*)(Bar*)> bar(create(), [](Bar* b){ destroy(b); });
    ...
}

Est-il un moyen de le faire avec std::unique_ptr en tant que membre d'une classe?

InformationsquelleAutor huitlarc | 2013-09-27