bool is_absolute() const { # ifdef AUTOBOOST_WINDOWS_API return has_root_name() && has_root_directory(); # else return has_root_directory(); # endif }
static Uri canonical(const Uri& uri, const Uri& base) { if (uri.absolute()) return uri; auto temp = base; temp.fragment(uri.fragment()); temp.query(uri.query()); auto path = filesystem::canonical(uri.path(), base.path()); if (path.has_root_name()) path = path.string().substr(path.root_name().string().length()); temp.path(path.string()); return temp; }
bool has_root_path() const { return has_root_directory() || has_root_name(); }