Are there any downsides with using make_shared instead of using shared_ptr.
Boost documentation states
With make shared you can not specify how allocation and deallocation of the held object will be done.
When that is desired, use std::allocate_shared instead:
std::vector> avec;
std::allocator aAllocator;
avec.push_back(std::allocate_shared(aAllocator,"hi there!"));
Note that the vector does not need to be informed about the allocator!
For making a custom allocator, have a look here https://stackoverflow.com/a/542339/1149664