LoginSignup
0
0

More than 1 year has passed since last update.

C++17 std::variant の簡略版がほしいメモ

Last updated at Posted at 2022-07-11

std::variant(variant-lite 含む) コンパイル遅い...
visit とかやるとより激遅...

型セーフで union っぽいのが実現できるだけでよいので, 簡単な variant ほしい...

ありがとうございます!

calebh 版は RTTI も hash も使わずいい感じです!
variant<bool, std::string> a みたいな値なし?での初期化ができませんのでご注意ください.

オリジナルの tibordp は std::swapstd::aligned_storage での undefined behavior が起きる可能性があるのでご注意ください.

https://cpprefjp.github.io/reference/type_traits/aligned_storage.html
(設計等がよくないため, aligned_storage は非推奨になりつつあります)

いろいろ機能追加したのを tiny-variant で作りました.
型の id を自前で用意して与えて上げる必要があります
(つまり任意の型を使えはしないが, 特定の型だけに限定するのが可能となる)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0