On 12/18/2015 05:54 PM, Vicente J. Botet Escriba wrote:
There is a draft proposal not yet finished at
https://github.com/viboes/std-make/blob/master/doc/proposal/factories/DXXXX_...
I realize that you are attempting to generalize pre-existing make factories, but I still wanted to raise the following problem because that is the main reason why I often have to avoid using make_shared. If I have a class T that always must be created as a shared_ptr (e.g. because it relies on enable_shared_from_this<T>), then I can ensure that the class can only be constructed via the factory by making the constructor of T private, and let the factory be a friend of T. This works fine if my factory is a static T::create(args...) function, but not when using make_shared<T>(args...) because in practice it uses internal helper functions that I cannot make friends of my class.