Временные переменные C ++ в списке инициализации

В C ++ есть ли способ иметь что-то вроде временной переменной в списке инициализации. Я хочу инициализировать два константных члена с одним и тем же экземпляром чего-либо без необходимости передавать это что-либо, удалять требование const, использовать Factory (т.е. передавать его, но фабрика генерирует его, чтобы скрыть от пользователя API), или у temp есть переменная-член.

То есть что-то вроде

Class Baz{
    const Foo f;
    const Bar b;
    Baz(Paramaters p):temp(p),f(p,temp),b(p,temp){ //temp is an instance of Something
                                                  // But NOT A member of Baz
    // Whatever
    }
}

вместо

Class Baz{
    Foo f;
    Bar b;
    Baz(Paramaters p){
        Something temp(p);
        f = Foo(p,temp)
        b = Bar(p,temp)
    }
}

или же

Class Baz{
    Foo f;
    Bar b;
    Baz(Paramaters p,Something s):f(p,s),b(p,s){
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос