std::variant
(variant-lite 含む) コンパイル遅い...
visit とかやるとより激遅...
型セーフで union っぽいのが実現できるだけでよいので, 簡単な variant ほしい...
ありがとうございます!
calebh 版は RTTI も hash も使わずいい感じです!
variant<bool, std::string> a
みたいな値なし?での初期化ができませんのでご注意ください.
オリジナルの tibordp は std::swap
と std::aligned_storage
での undefined behavior が起きる可能性があるのでご注意ください.
https://cpprefjp.github.io/reference/type_traits/aligned_storage.html
(設計等がよくないため, aligned_storage は非推奨になりつつあります)
いろいろ機能追加したのを tiny-variant で作りました.
型の id を自前で用意して与えて上げる必要があります
(つまり任意の型を使えはしないが, 特定の型だけに限定するのが可能となる)