看起来像是 template method 不过在存取端一定会有相依性问题, 变成在 type erasure 或是 dynamic polym-orphism 之间做取舍你需要的是明确定义流程, 而其他重复的程式码都可以透过 CRTP 预先在 base class 定义好
https://wandbox.org/permlink/6lqqEHTxC7AHkT6V虽然 RAII 可以做到类似的功能, 但因为编译器允许把dtor call 给 optimize 掉, 所以把 side-effect 放在dtor 里完成是比较不保险的做法上面程式码少加 virtual dtor 在 base 里