|
LLFIO v2.00
|
An iterated part of a path_view.
More...
#include "path_view.hpp"
Classes | |
| class | rendered_path |
Public Types | |
| enum | format : uint8_t { unknown , native_format , generic_format , auto_format , binary_format } |
| How to interpret separators. More... | |
| enum | termination { zero_terminated , not_zero_terminated } |
| The zero termination to use. More... | |
| using | size_type = filesystem::path::string_type::size_type |
| The size type. | |
| using | byte = llfio_v2_xxx ::byte |
| Character type for passthrough input. | |
| using | char16_t = detail::char16_t |
| template<class T > | |
| using | default_rendered_path_deleter = std::default_delete< T > |
| The default deleter to use. | |
| template<class T = typename filesystem::path::value_type, class AllocatorOrDeleter = default_rendered_path_deleter<T[]>, size_t _internal_buffer_size = default_internal_buffer_size> | |
| using | zero_terminated_rendered_path = rendered_path< termination::zero_terminated, T, AllocatorOrDeleter, _internal_buffer_size > |
| Convenience type alias. | |
| template<class T = typename filesystem::path::value_type, class AllocatorOrDeleter = default_rendered_path_deleter<T[]>, size_t _internal_buffer_size = default_internal_buffer_size> | |
| using | not_zero_terminated_rendered_path = rendered_path< termination::not_zero_terminated, T, AllocatorOrDeleter, _internal_buffer_size > |
| Convenience type alias. | |
Public Member Functions | |
| constexpr | path_view_component () noexcept |
| Constructs an empty path view component (DEVIATES from P1030, is not trivial due to C++ 14 compatibility) | |
| constexpr | path_view_component (path_view_component p, format fmt) noexcept |
| Constructs a path view component identical to the input, except with different format interpretation. | |
| path_view_component (const filesystem::path &v, format fmt=auto_format) noexcept | |
| template<class Char , typename std::enable_if<(is_source_chartype_acceptable< Char >), bool >::type = true> | |
| constexpr | path_view_component (const std::basic_string< Char > &v, format fmt=binary_format) noexcept |
| constexpr | path_view_component (const char *b, size_t l, enum termination zt, format fmt=binary_format) noexcept |
| constexpr | path_view_component (const wchar_t *b, size_t l, enum termination zt, format fmt=binary_format) noexcept |
| constexpr | path_view_component (const char8_t *b, size_t l, enum termination zt, format fmt=binary_format) noexcept |
| constexpr | path_view_component (const char16_t *b, size_t l, enum termination zt, format fmt=binary_format) noexcept |
| constexpr | path_view_component (const byte *b, size_t l, enum termination zt) noexcept |
| template<class Char , typename std::enable_if<(is_source_chartype_acceptable< Char >), bool >::type = true> | |
| constexpr | path_view_component (const Char *s, format fmt=binary_format) noexcept |
| constexpr | path_view_component (const byte *s) noexcept |
| template<class Char , typename std::enable_if<(is_source_chartype_acceptable< Char >), bool >::type = true> | |
| constexpr | path_view_component (basic_string_view< Char > v, enum termination zt, format fmt=binary_format) noexcept |
| constexpr | path_view_component (span< const byte > v, enum termination zt) noexcept |
| template<class It , class End , typename std::enable_if<(is_source_chartype_acceptable< typename It::value_type >), bool >::type = true, typename std::enable_if<(is_source_chartype_acceptable< typename End::value_type >), bool >::type = true> | |
| constexpr | path_view_component (It b, End e, enum termination zt, format fmt=binary_format) noexcept |
| template<class It , class End , typename std::enable_if<(is_source_chartype_acceptable< std::decay_t< It > >), bool >::type = true, typename std::enable_if<(is_source_chartype_acceptable< std::decay_t< End > >), bool >::type = true> | |
| constexpr | path_view_component (It *b, End *e, enum termination zt, format fmt=binary_format) noexcept |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<class It , class End , typename std::enable_if<(std::is_same< typename It::value_type, byte >::value), bool >::type = true, typename std::enable_if<(std::is_same< typename End::value_type, byte >::value), bool >::type = true> | |
| constexpr | path_view_component (It b, End e, enum termination zt) noexcept |
| template<class It , class End , typename std::enable_if<(std::is_same< std::decay_t< It >, byte >::value), bool >::type = true, typename std::enable_if<(std::is_same< std::decay_t< End >, byte >::value), bool >::type = true> | |
| constexpr | path_view_component (It *b, End *e, enum termination zt) noexcept |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| path_view_component (const path_view_component &)=default | |
| path_view_component (path_view_component &&)=default | |
| path_view_component & | operator= (const path_view_component &)=default |
| path_view_component & | operator= (path_view_component &&)=default |
| const byte * | _raw_data () const noexcept |
| constexpr void | swap (path_view_component &o) noexcept |
| Swap the view with another. | |
| constexpr bool | empty () const noexcept |
| True if empty. | |
| constexpr size_t | native_size () const noexcept |
| Returns the size of the view in characters. | |
| constexpr format | formatting () const noexcept |
| How path separators shall be interpreted. | |
| constexpr bool | has_null_termination () const noexcept |
| True if input is declared to be null terminated. | |
| constexpr enum termination | termination () const noexcept |
| The zero termination during construction. | |
| constexpr bool | has_stem () const noexcept |
True if stem() returns a non-empty path. | |
| constexpr bool | has_extension () const noexcept |
True if extension() returns a non-empty path. | |
| constexpr bool | contains_glob () const noexcept |
True if the view contains any of the characters *, ?, (POSIX only: [ or ]). | |
| constexpr path_view_component | stem () const noexcept |
| Returns a view of the filename without any file extension. | |
| constexpr path_view_component | extension () const noexcept |
| Returns a view of the file extension part of this view. | |
| filesystem::path | path () const |
| Return the path view as a path. Allocates and copies memory! | |
| template<class T = typename filesystem::path::value_type, class Deleter = default_rendered_path_deleter<T[]>, size_t _internal_buffer_size = default_internal_buffer_size, typename std::enable_if<(is_source_acceptable< T >), bool >::type = true> | |
| constexpr int | compare (path_view_component p, const std::locale &loc) const |
| template<class T = typename filesystem::path::value_type, class Deleter = default_rendered_path_deleter<T[]>, size_t _internal_buffer_size = default_internal_buffer_size, typename std::enable_if<(is_source_acceptable< T >), bool >::type = true> | |
| constexpr int | compare (path_view_component p) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<enum path_view_component::termination ZeroTermination, class T = typename filesystem::path::value_type, class AllocatorOrDeleter = default_rendered_path_deleter<T[]>, size_t _internal_buffer_size = default_internal_buffer_size, class... Args, typename std::enable_if<(is_source_acceptable< T >), bool >::type = true, typename = decltype( std::is_constructible<rendered_path<ZeroTermination, T, AllocatorOrDeleter, _internal_buffer_size>, path_view_component, Args...>::value )> | |
| rendered_path< ZeroTermination, T, AllocatorOrDeleter, _internal_buffer_size > | render (path_view_component view, Args &&...args) const |
| Convenience function. | |
| template<class T = typename filesystem::path::value_type, class AllocatorOrDeleter = default_rendered_path_deleter<T[]>, size_t _internal_buffer_size = default_internal_buffer_size, class... Args, typename std::enable_if<(is_source_acceptable< T >), bool >::type = true, typename = decltype( std::is_constructible<rendered_path<termination::zero_terminated, T, AllocatorOrDeleter, _internal_buffer_size>, path_view_component, Args...>::value )> | |
| rendered_path< termination::zero_terminated, T, AllocatorOrDeleter, _internal_buffer_size > | render_null_terminated (Args &&...args) const |
| Convenience function. | |
| template<class T = typename filesystem::path::value_type, class AllocatorOrDeleter = default_rendered_path_deleter<T[]>, size_t _internal_buffer_size = default_internal_buffer_size, class... Args, typename std::enable_if<(is_source_acceptable< T >), bool >::type = true, typename = decltype( std::is_constructible<rendered_path<termination::zero_terminated, T, AllocatorOrDeleter, _internal_buffer_size>, path_view_component, Args...>::value )> | |
| rendered_path< termination::not_zero_terminated, T, AllocatorOrDeleter, _internal_buffer_size > | render_unterminated (Args &&...args) const |
| Convenience function. | |
Static Public Attributes | |
| static constexpr auto | preferred_separator = filesystem::path::preferred_separator |
| The preferred separator type. | |
| template<class Char > | |
| static constexpr bool | is_source_chartype_acceptable = detail::is_source_chartype_acceptable<Char>::value |
| template<class Char > | |
| static constexpr bool | is_source_acceptable = detail::is_source_acceptable<Char>::value |
| static constexpr size_t | default_internal_buffer_size = 1024 |
The default internal buffer size used by rendered_path. | |
Friends | |
| class | path_view |
| template<enum path_view_component::termination ZeroTermination, class T , class Deleter , size_t _internal_buffer_size, typename std::enable_if<(is_source_acceptable< T >), bool >::type > | |
| class | rendered_path |
| constexpr bool | llfio_v2_xxx::operator== (path_view_component x, path_view_component y) noexcept |
| constexpr bool | llfio_v2_xxx::operator!= (path_view_component x, path_view_component y) noexcept |
| constexpr bool | llfio_v2_xxx ::operator< (path_view_component x, path_view_component y) noexcept |
| constexpr size_t | hash_value (path_view_component x) noexcept |
Hashes a path_view_component. | |
| template<class F > | |
| constexpr auto | llfio_v2_xxx::visit (path_view_component view, F &&f) |
| template<class F > | |
| constexpr auto | llfio_v2_xxx::visit (F &&f, path_view_component view) |
| std::ostream & | llfio_v2_xxx ::operator<< (std::ostream &s, const path_view_component &v) |
An iterated part of a path_view.
| enum llfio_v2_xxx::path_view_component::format : uint8_t |
How to interpret separators.
The zero termination to use.
|
inlineconstexprnoexcept |
Constructs an empty path view component (DEVIATES from P1030, is not trivial due to C++ 14 compatibility)
|
inlineconstexprnoexcept |
Constructs a path view component identical to the input, except with different format interpretation.
|
inlinenoexcept |
Implicitly constructs a path view from a path. The input path MUST continue to exist for this view to be valid (DEVIATES from P1030 due to filesystem::path not exposing its path formatting).
|
inlineconstexprnoexcept |
Constructs from a basic string if the character type is one of char, wchar_t, char8_t or char16_t.
|
inlineconstexprnoexcept |
Constructs from a lengthed array of one of char, wchar_t, char8_t or char16_t. The input string MUST continue to exist for this view to be valid.
|
inlineconstexprnoexcept |
Constructs from a lengthed array of one of char, wchar_t, char8_t or char16_t. The input string MUST continue to exist for this view to be valid.
|
inlineconstexprnoexcept |
Constructs from a lengthed array of one of char, wchar_t, char8_t or char16_t. The input string MUST continue to exist for this view to be valid.
|
inlineconstexprnoexcept |
Constructs from a lengthed array of one of char, wchar_t, char8_t or char16_t. The input string MUST continue to exist for this view to be valid.
|
inlineconstexprnoexcept |
Constructs from a lengthed array of byte. The input array MUST continue to exist for this view to be valid.
|
inlineconstexprnoexcept |
Implicitly constructs a path view from a zero terminated pointer to a character array, which must be one of char, wchar_t, char8_t or char16_t. The input string MUST continue to exist for this view to be valid.
|
inlineconstexprnoexcept |
Implicitly constructs a path view from a zero terminated pointer to byte array. The input array MUST continue to exist for this view to be valid.
|
inlineconstexprnoexcept |
Constructs from a basic string view if the character type is one of char, wchar_t, char8_t or char16_t.
|
inlineconstexprnoexcept |
Constructs from a span<const byte>.
|
inlineconstexprnoexcept |
Constructs from an iterator sequence if the iterator is contiguous, if its value type is one of char, wchar_t, char8_t or char16_t.
(DEVIATES from P1030, cannot detect contiguous iterator in SFINAE in C++ 14)
|
inlineconstexprnoexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
inlineconstexprnoexcept |
Constructs from an iterator sequence if the iterator is contiguous, if its value type is byte.
(DEVIATES from P1030, cannot detect contiguous iterator in SFINAE in C++ 14)
|
inlineconstexprnoexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
inlinenoexcept |
|
inlineconstexpr |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
inlineconstexpr |
Compares the two path views for equivalence or ordering using T as the destination encoding, if necessary.
If the source encodings of the two path views are compatible, a lexicographical comparison is performed. If they are incompatible, either or both views are converted to the destination encoding using rendered_path<T, Delete, _internal_buffer_size>, and then a lexicographical comparison is performed.
This can, for obvious reasons, be expensive. It can also throw exceptions, as rendered_path does.
If the destination encoding is byte, memcmp() is used, and rendered_path is never invoked as the two sources are byte compared directly.
|
inlineconstexprnoexcept |
True if the view contains any of the characters *, ?, (POSIX only: [ or ]).
|
inlineconstexprnoexcept |
True if empty.
|
inlineconstexprnoexcept |
Returns a view of the file extension part of this view.
|
inlineconstexprnoexcept |
How path separators shall be interpreted.
|
inlineconstexprnoexcept |
True if extension() returns a non-empty path.
|
inlineconstexprnoexcept |
True if input is declared to be null terminated.
|
inlineconstexprnoexcept |
True if stem() returns a non-empty path.
|
inlineconstexprnoexcept |
Returns the size of the view in characters.
|
inline |
Return the path view as a path. Allocates and copies memory!
|
inline |
Convenience function.
|
inline |
Convenience function.
|
inline |
Convenience function.
|
inlineconstexprnoexcept |
Returns a view of the filename without any file extension.
|
inlineconstexprnoexcept |
Swap the view with another.
|
inlineconstexprnoexcept |
The zero termination during construction.
|
friend |
Hashes a path_view_component.
| const byte* llfio_v2_xxx::path_view_component::_bytestr {nullptr} |
|
staticconstexpr |
True if path views can be constructed from this source. i.e. is_source_chartype_acceptable, or is byte
|
staticconstexpr |
True if path views can be constructed from this character type. i.e. is one of char, wchar_t, char8_t, char16_t