クラス内部で
using std::shared_ptr<T>;
を付けるとコンストラクタの実装が完璧になるよ。