そもそも関数内で使うだけなら
引数にshared_ptr使っていようが循環参照は起きない
メンバに保持しない限り