こーゆーの欲しいんだけどなーと思ってて見付からなかった奴が普通にあった。
結局、こんなコードで良かった。
template <typename T> void set ( typename enable_if< is_same< uint32_t, T >, const T& >::type t ) { as_uint32 = t; }
まあ、色々練習になったから良し。
あと、unionで型変換を潰すようなのはtype erasureとか言って、boost::anyなんかでも使われてるっぽい。やっぱこれしか無いのか。だりー。Modern C++ Designとか読めば書いてあるのかなあ。まあ、ネットに転がってる情報の拾い読みと試行錯誤で何とかなるかな。だりー。
関数ポインタとデータポインタの書き分けとかは結局自前だったし。書き分ける意味多分ねーけど。
つーか、ついこないだまで「SFINAE怖いからやめとこう」とか言ってたの誰(笑)。
(Visited 3 times, 1 visits today)