#pragma once #include #include struct AbsolutePath { static AbsolutePath BuildDoNotUse(std::string const& path); // Try not to use this. AbsolutePath(); // Provide implicit conversions to std::string for the time being. AbsolutePath(std::string const& path, bool validate = true); operator std::string() const; bool operator==(AbsolutePath const& rhs) const; bool operator!=(AbsolutePath const& rhs) const; bool operator<(AbsolutePath const& rhs) const; bool operator>(AbsolutePath const& rhs) const; std::string path; bool qualify = true; }; void Reflect(Reader& visitor, AbsolutePath& value); void Reflect(Writer& visitor, AbsolutePath& value);