I'd guess that avoiding the constructor might work:
auto infoPtr = std::make_shared<CParameterInfo>();
This also has the advantage of only doing a single memory allocation, while separate creation of the object and the shared state would need two.