動作可能なコード片ではないので、1つにまとめずに、3つに分けて、関数シグニチャー部分も仮に付けて、更新処理やreturnも仮の実装を書いたほうがcpprefの性質と読者により良い記事となるかもしれません。