| 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