読者です 読者をやめる 読者になる 読者になる

tagged_int : ハッシュサポートを追加

C++

整数のStrong Typedefとして作ったtagged_intクラスに、ハッシュサポートを追加しました。

これで、std::unordered_mapboost::unordered_mapのキーとして使えます。

#include <shand/strong_typedef/tagged_int.hpp>

#include <unordered_map>
#include <boost/unordered_map.hpp>

struct tag {};
typedef shand::tagged_int<int, tag> integer;

int main ()
{
    {
        std::unordered_map<integer, char> m;
        m.insert(std::make_pair(integer(3), 'a'));
    }
    {
        boost::unordered_map<integer, char> m;
        m.insert(std::make_pair(integer(3), 'a'));
    }
}

tagged_realの方は、今のところ対応していません。浮動小数点数型をキーにしたい状況がよくわからないので、ユースケースが見つかったら対応します。