1

我希望有一个 boost::variant 包含一系列不同的类型,包括 std::string 和我自己的名为 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;
};
4

0 回答 0