Ok, let try to write a piece of code more similar to my real case, please take it as an example, it does not have to compile:
class A
{
    public:
    A() = delete;
    A(int value);
    ...
}
class B
{
    unique_ptr<A> a;
    C c;
    B() { a = make_unique<A>(c.getValue()); }
}
class C
{
    public:
    C();
    int getValue() { return <an int value based on something>; }
}
Now I hope my question is clearer, because of some constraints I cannot pass int value to B constructor, then I cannot use initializer list. So, is my unique_ptr solution the preferred one? Thanks again.
 
     
    