我希望有一个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;
};