Factoryの生成物として、オブジェクトの配列を返す場合
ファクトリークラスのインターフェイスは、

1 std::vector<IHoge*> createProduct();
2 std::vector<std::shared_ptr<IHoge>> createProduct();

どっちがいいんでしょうか。
心情的には、2にしたいんですが、いかんせんかっこわるい気がします