28 #ifndef YSL_INC_CORE_YFILESYS_H_
29 #define YSL_INC_CORE_YFILESYS_H_ 1
78 class iterator :
public std::iterator<std::bidirectional_iterator_tag, Path>
81 const value_type*
ptr;
82 StringType::size_type
n;
89 : ptr(), n(StringType::npos)
97 : ptr(&p), n(StringType::npos)
142 return ptr == i.
ptr && n == i.
n;
151 return !(*
this == i);
188 Path(
const NativeString& pathstr)
191 template<
class _tString>
210 operator/=(const
Path&);
229 return !GetRootName().empty();
235 HasRootDirectory()
const
237 return !GetRootDirectory().empty();
245 return !GetRootPath().empty();
251 HasRelativePath()
const
253 return !GetRelativePath().empty();
259 HasParentPath()
const
261 return !GetParentPath().empty();
269 return !GetFilename().empty();
277 return !GetStem().empty();
285 return !GetExtension().empty();
298 GetRootDirectory()
const;
308 GetRelativePath()
const;
313 GetParentPath()
const;
328 GetExtension()
const;
357 MakeAbsolute(
const Path&);
367 NormalizeTrailingSlash();
377 ReplaceExtension(
const Path& = {});
426 bool lexicographical_compare(Path::iterator, Path::iterator,
427 Path::iterator, Path::iterator);
452 SplitPath(
const string&,
string&,
string&);
471 IsStemOf(
const string&,
const string&);
602 operator=(const
Path&);
609 operator/=(const Path&);