TypeInfo改良
最近ちょいちょい趣味プログラムを書いている。
VisualStudioを2017から2019に更新して、
Clangも更新して、
とりあえずC++17が使える環境に。
コードは色々触ってるけど、最近は自前TypeInfo関連の改良を。
このブログで最初に投稿してたやつ。
dinks.hateblo.jp
このTypeInfoを使って実装している
「何かのポインタを格納できて、取り出すところで意図した型なら取り出せる」
っていうクラスについて、
本当に格納している型でしか取り出せなくて、
その基底クラスでは取り出せなかったのでなんとか対応してみた。
ただ、以下の制約があるのでなにか良い方法を思いついたら改善したい。
- とあるクラスの基底クラス情報を、使う側が設定しないといけない。
- 基底クラス情報は1つしか設定できない。
※type_traitsに、基底クラスを列挙してくれる base_of みたいなのが追加されたらなぁ…
tofu/AnyPtr_test.cpp at develop · fsawa/tofu · GitHub
tofu/AnyPtr.hpp at develop · fsawa/tofu · GitHub
このクラスは基本的にスマートポインタとして使いたいわけではないところで作ったけど、
次はこの辺に対応してみようかなと思っている。