バリアントおよびBoostライブラリのいずれかは内部でどのように機能しますか?私が取り組んでいるプロジェクトでは、現在タグ付き共用体を使用しています。C ++の共用体では、コンストラクタ、デストラクタ、またはオーバーロードされた代入演算子でオブジェクトを使用できないため、別のものを使用したいと思います。
anyとvariantのサイズを照会し、それらを使用していくつかの実験を行いました。私のプラットフォームでは、バリアントは可能な限り長いタイプに8バイトを加えたサイズを取ります。タイプ情報は8バイトで、残りはプリペイドカードだと思います。一方、どれも8バイトしかかかりません。私は64ビットプラットフォームを使用しているので、ポインタを保持しているだけだと思います。
誰がそれがどんなタイプを持っているかをどうやって知るのですか?Variantは、テンプレートを介してどのように機能を実現しますか?これらのクラスを使用する前に、これらのクラスについて詳しく知りたいと思います。