Como uso um deleter personalizado com um membro std :: unique_ptr?

Eu tenho uma classe com um membro unique_ptr.

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

A barra é uma classe de terceiros que possui uma função create () e uma função destroy ().

Se eu quisesse usar umstd::unique_ptr com ele em uma função independente, eu poderia fazer:

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

Existe uma maneira de fazer isso comstd::unique_ptr como membro de uma classe?

questionAnswers(6)

yourAnswerToTheQuestion