stateful constexpr Counter/CompiletimeTypeID

stateful constexprとは?という問題についてはまずこの辺りを見ていただきたい
C++のconstexprは参照透明とは限らない - 魂をC++に捧げよ
本の虫: constexprで非定数式の状態を保持

このように書かれるたびに(≠呼び出されるたび)違う値を返すconstexpr関数を実装することができる
これが本当にconstexprなのか?といわれると怪しいが

元の記事では32から0までflagが立てられているものを探していく、という実装である
しかし、この実装では当然32以上のものは作れないので1から数え上げていく方法に変えた
ついでにTypeIDを実装した
これによりUnique関数のオーダーがO(NlogN)に下がるだろう
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ



無限ループをオーバーロードで無限ループをはじいている

現状の方式の問題点

・何かとO(N)であること
next()関数はO(N)時間かかる関数でありあまり効率的ではない
また、constexprの再起制限も気になるところだ。C++11の悪夢再び
再起制限のほうは何とかなるような気もするが、検索オーダーを下げると折角減らしたwarningがまた増えるような気がする

GCCでwarningが消えきらない
ライブラリがwarningを吐くのは当然いいことではない