boost::multi_index を使用して URL 管理オブジェクトを作成しようとしています。2 つのインデックス、各パス項目の 1 つのインデックス位置、およびその項目を見つけるための 1 つのインデックス キーがあります。
class InternalPath
{
public:
struct PathItem
{
int Position;
std::string Key;
std::string Path;
};
typedef boost::multi_index_container<
PathItem,
boost::multi_index::indexed_by<
boost::multi_index::ordered_unique<boost::multi_index::member<PathItem,int,&PathItem::Position>>,
boost::multi_index::ordered_unique<boost::multi_index::member<PathItem,std::string,&PathItem::Key>>
>
> PathContainer;
private:
PathContainer path_;
};
ただし、すべてのアイテムにキーがあるわけではないという問題があります。ほとんどの項目は、位置とパスのみで構成されます。キーを一意にしたい。キー以外のアイテムを複数挿入すると、問題が発生します。
空の文字列を持つキーがコンテナに複数のアイテムを持つことを許可することは可能ですか? そうでない場合、この問題を克服するにはどうすればよいですか?