がパフォーマンスを消費する操作boost::get
でboost::variant
あるかどうかを誰かが知っていますか。
現在、パフォーマンスが重要な部分の古いコードをリファクタリングしています。ここでは、「バリアント化」が可能な各タイプと対応するコンテナによって実装されていましたenum
。
明らかに、これは高速ですが、醜いので、コードをリファクタリングして、もう 1 つの typeで動作するようにする必要がある場合は、コードの古い部分を取り除き、 に置き換えたいと考えていboost::variant
ます。
また、単純に「両方のバリアントをプロファイリングして比較する」ことはできません。このリファクタリングは面倒で、かなりの時間がかかるためです。
boost::get<x>
したがって、ジェネリック型ディスパッチと比較して がどのように機能するかを誰かが知っている場合enum-based
は、この知識を共有していただければ幸いです。
(ドキュメントboost::variant<types>
で説明されているように) カスタム ビジターを使用する別の方法があります。これは私の場合よりも高速でしょうか?boost::variant
boost::get
ありがとうございました。