rec_guardのコンストラクタ整理
rec_guardのコンストラクタ整理

rec_guard<T>のコンストラクタのうち，new Tに引数を転送する版のコンストラクタを全てperfect forwardingのものに集約した．
  Tのコピー/ムーブ/その他版とコンストラクタを分けるためにはstd::is_constructibleで
  チェックしてオーバーロードを制御しないといけないが，Tが不完全型である場合にはチェックできない．
  かつ，特に分ける必要がない．

dechimal/TaggedUnion