LLFIO  v2.00
path_view.hpp File Reference

Provides view of a path. More...

#include "config.hpp"
#include <iterator>
#include <memory>
#include "quickcpplib/algorithm/hash.hpp"
#include "quickcpplib/algorithm/string.hpp"

Classes

class  llfio_v2_xxx::path_view_component
 An iterated part of a path_view. More...
 
class  llfio_v2_xxx::path_view_component::rendered_path< ZeroTermination, T, AllocatorOrDeleter, _internal_buffer_size, type >
 
class  llfio_v2_xxx::path_view
 A borrowed view of a path. A lightweight trivial-type alternative to std::filesystem::path. More...
 

Namespaces

 llfio_v2_xxx
 The LLFIO namespace.
 

Macros

#define LLFIO_PATH_VIEW_CONSTEXPR   constexpr
 
#define LLFIO_PATH_VIEW_CHAR8_TYPE_EMULATED   0
 

Enumerations

enum class  char16_t : unsigned short
 

Functions

template<class T >
constexpr size_t llfio_v2_xxx::detail::constexpr_strlen (const T *s) noexcept
 
constexpr size_t llfio_v2_xxx::detail::constexpr_strlen (const byte *s) noexcept
 
char * llfio_v2_xxx::detail::reencode_path_to (size_t &toallocate, char *dest_buffer, size_t dest_buffer_length, const llfio_v2_xxx::byte *src_buffer, size_t src_buffer_length, const std::locale *loc)
 
char * llfio_v2_xxx::detail::reencode_path_to (size_t &toallocate, char *dest_buffer, size_t dest_buffer_length, const char *src_buffer, size_t src_buffer_length, const std::locale *loc)
 
char * llfio_v2_xxx::detail::reencode_path_to (size_t &toallocate, char *dest_buffer, size_t dest_buffer_length, const wchar_t *src_buffer, size_t src_buffer_length, const std::locale *loc)
 
char * llfio_v2_xxx::detail::reencode_path_to (size_t &toallocate, char *dest_buffer, size_t dest_buffer_length, const char8_t *src_buffer, size_t src_buffer_length, const std::locale *loc)
 
char * llfio_v2_xxx::detail::reencode_path_to (size_t &toallocate, char *dest_buffer, size_t dest_buffer_length, const char16_t *src_buffer, size_t src_buffer_length, const std::locale *loc)
 
wchar_t * llfio_v2_xxx::detail::reencode_path_to (size_t &toallocate, wchar_t *dest_buffer, size_t dest_buffer_length, const llfio_v2_xxx::byte *src_buffer, size_t src_buffer_length, const std::locale *loc)
 
wchar_t * llfio_v2_xxx::detail::reencode_path_to (size_t &toallocate, wchar_t *dest_buffer, size_t dest_buffer_length, const char *src_buffer, size_t src_buffer_length, const std::locale *loc)
 
wchar_t * llfio_v2_xxx::detail::reencode_path_to (size_t &toallocate, wchar_t *dest_buffer, size_t dest_buffer_length, const wchar_t *src_buffer, size_t src_buffer_length, const std::locale *loc)
 
wchar_t * llfio_v2_xxx::detail::reencode_path_to (size_t &toallocate, wchar_t *dest_buffer, size_t dest_buffer_length, const char8_t *src_buffer, size_t src_buffer_length, const std::locale *loc)
 
wchar_t * llfio_v2_xxx::detail::reencode_path_to (size_t &toallocate, wchar_t *dest_buffer, size_t dest_buffer_length, const char16_t *src_buffer, size_t src_buffer_length, const std::locale *loc)
 
template<class T , class U , typename = decltype( std::declval<U>()((T *) nullptr) )>
constexpr U llfio_v2_xxx::detail::is_deleter (U &&v)
 
template<class T >
constexpr void llfio_v2_xxx::detail::is_deleter (...)
 
template<class U , typename = decltype( std::declval<U>().deallocate((typename U::value_type *) nullptr, (size_t) 0) )>
constexpr U llfio_v2_xxx::detail::is_allocator (U &&v)
 
constexpr void llfio_v2_xxx::detail::is_allocator (...)
 
constexpr bool llfio_v2_xxx::operator== (path_view_component x, path_view_component y) noexcept
 Compares identity equality not equivalence i.e. backing storage type must be identical, and backing bytes must be identical. Use compare() if you want something stronger.
 
constexpr bool llfio_v2_xxx::operator!= (path_view_component x, path_view_component y) noexcept
 Compares identity inequality not disequivalence i.e. backing storage type must be different, or backing bytes must be different. Use compare() if you want something stronger.
 
constexpr bool llfio_v2_xxx::operator< (path_view_component x, path_view_component y) noexcept
 Compares identity for ordering i.e. backing storage type must be different, or backing bytes must be different. Use compare() if you want something stronger.
 
constexpr size_t llfio_v2_xxx::hash_value (path_view_component view) noexcept
 Hashes a path_view_component.
 
template<class F >
constexpr auto llfio_v2_xxx::visit (path_view_component view, F &&f)
 Visit the underlying source for a path_view_component (LLFIO backwards compatible overload)
 
template<class F >
constexpr auto llfio_v2_xxx::visit (F &&f, path_view_component view)
 Visit the underlying source for a path_view_component (std compatible overload)
 
std::ostream & llfio_v2_xxx::operator<< (std::ostream &s, const path_view_component &v)
 
constexpr bool llfio_v2_xxx::operator== (path_view x, path_view y) noexcept
 Compares individual path view components for identity not equivalence. Use compare() if you want something stronger.
 
constexpr bool llfio_v2_xxx::operator!= (path_view x, path_view y) noexcept
 Compares individual path view components for non-**identity** not disequivalence. Use compare() if you want something stronger.
 
constexpr bool llfio_v2_xxx::operator< (path_view x, path_view y) noexcept
 Compares individual path view components for ordering. Use compare() if you want something stronger.
 
constexpr size_t llfio_v2_xxx::hash_value (path_view x) noexcept
 Return the combined hash of individual path components.
 
template<class CharT , typename std::enable_if<(path_view_component::is_source_acceptable< CharT >), bool >::type = true>
constexpr bool llfio_v2_xxx::operator== (path_view_component, const CharT *) noexcept
 
template<class CharT , typename std::enable_if<(path_view_component::is_source_acceptable< CharT >), bool >::type = true>
constexpr bool llfio_v2_xxx::operator== (const CharT *, path_view_component) noexcept
 
template<class CharT , typename std::enable_if<(path_view_component::is_source_acceptable< CharT >), bool >::type = true>
constexpr bool llfio_v2_xxx::operator!= (path_view_component, const CharT *) noexcept
 
template<class CharT , typename std::enable_if<(path_view_component::is_source_acceptable< CharT >), bool >::type = true>
constexpr bool llfio_v2_xxx::operator!= (const CharT *, path_view_component) noexcept
 
template<class CharT , typename std::enable_if<(path_view::is_source_acceptable< CharT >), bool >::type = true>
constexpr bool llfio_v2_xxx::operator== (path_view, const CharT *) noexcept
 
template<class CharT , typename std::enable_if<(path_view::is_source_acceptable< CharT >), bool >::type = true>
constexpr bool llfio_v2_xxx::operator== (const CharT *, path_view) noexcept
 
template<class CharT , typename std::enable_if<(path_view::is_source_acceptable< CharT >), bool >::type = true>
constexpr bool llfio_v2_xxx::operator!= (path_view, const CharT *) noexcept
 
template<class CharT , typename std::enable_if<(path_view::is_source_acceptable< CharT >), bool >::type = true>
constexpr bool llfio_v2_xxx::operator!= (const CharT *, path_view) noexcept
 
filesystem::path & llfio_v2_xxx::operator+= (filesystem::path &a, path_view_component b)
 Append a path view component to a path.
 
filesystem::path & llfio_v2_xxx::operator/= (filesystem::path &a, path_view_component b)
 Append a path view component to a path.
 
filesystem::path llfio_v2_xxx::operator/ (const filesystem::path &a, path_view_component b)
 Append a path view component to a path.
 
filesystem::path llfio_v2_xxx::operator/ (filesystem::path &&a, path_view_component b)
 Append a path view component to a path.
 
template<class T , typename std::enable_if<(std::is_same< T, path_view_component >::value||std::is_same< T, path_view >::value), bool >::type = true>
filesystem::path llfio_v2_xxx::operator/ (T a, path_view_component b)
 Append a path view component to a path view component.
 

Detailed Description

Provides view of a path.