16 #ifndef WPIUTIL_WPI_PATH_H_
17 #define WPIUTIL_WPI_PATH_H_
19 #include "wpi/Twine.h"
20 #include "wpi/iterator.h"
23 #include <system_error>
28 #pragma warning(disable : 4996)
35 enum class Style { windows, posix, native };
72 reference operator*()
const {
return Component; }
97 reference operator*()
const {
return Component; }
154 Style style = Style::native);
171 Style style = Style::native);
186 const Twine &d =
"");
216 Style style = Style::native);
231 std::string convert_to_slash(
StringRef path, Style style = Style::native);
346 bool is_separator(
char value, Style style = Style::native);
351 StringRef get_separator(Style style = Style::native);
376 bool has_root_name(
const Twine &path, Style style = Style::native);
384 bool has_root_directory(
const Twine &path, Style style = Style::native);
392 bool has_root_path(
const Twine &path, Style style = Style::native);
400 bool has_relative_path(
const Twine &path, Style style = Style::native);
408 bool has_parent_path(
const Twine &path, Style style = Style::native);
416 bool has_filename(
const Twine &path, Style style = Style::native);
424 bool has_stem(
const Twine &path, Style style = Style::native);
432 bool has_extension(
const Twine &path, Style style = Style::native);
438 bool is_absolute(
const Twine &path, Style style = Style::native);
444 bool is_relative(
const Twine &path, Style style = Style::native);
459 Style style = Style::native);