包装std :: string以用于boost :: variant

时间:2013-08-29 10:18:15

标签: c++ boost boost-variant c++98

我希望有一个boost :: variant,它包含一系列不同的类型,包括std :: string和我自己的类叫Path。 Path实际上是一个字符串本身,至少在目前,但它在应用程序本身方面是一个非常不同的概念,当访问它时,我将使用此字符串做非常不同的事情。现在我当然不能简单地将typedef Path作为std :: string,那么定义Path类的最佳方法是什么?

更新

这是我的解决方案:

struct Path
{
    Path()
    {
    }

    Path(std::string& _value): value(_value)
    {
    }

    Path(const char* _value): value(_value)
    {
    }

    bool operator==(const Path& right) const
    {
        return value==right.value;
    }

    bool operator!=(const Path& right) const
    {
        return value!=right.value;  
    }

    bool operator<(const Path& right) const
    {
        return value<right.value;
    }

    std::string value;
};

0 个答案:

没有答案