2

クラスから のような読み取り専用アダプターを返したいのですboost::iterator_rangeが、std::mapとサポートoperator[](つまり ではないboost::iterator_range<std::pair<key_type, value_type>>) のようなものは存在しますか?

例えば

class processor
{
public:

   // boost::map_view is made up.
   // The data member could be std::map boost::multimap etc...

    virtual boost::map_view<std::string, boost::signals2::signal<int>> outputs() = 0;

};
4

2 に答える 2

2

boost::iterator_range をラップし、メンバーとしてマップへの const 参照を持つ単純なクラスを作成できます。operator[] の実装では、渡されたキーが最初と最後の範囲要素でマップ比較オブジェクトを呼び出して範囲内にあるかどうかを確認する必要があります (multi_map では十分ではないことに注意してください)。

于 2013-07-06T10:03:35.520 に答える