Inherits llfio_v2_xxx::path_view_component::_rendered_path_base< ZeroTermination, T, bool >.
|
using | value_type = typename _base::value_type |
|
using | allocator_type = decltype(detail::is_allocator(std::declval< AllocatorOrDeleter >())) |
| Type of the allocator, or void if that was not configured.
|
|
using | deleter_type = decltype(detail::is_deleter< value_type >(std::declval< AllocatorOrDeleter >())) |
| Type of the deleter, or void if that was not configured.
|
|
using | pointer = const T * |
| Type of the pointer type.
|
|
using | const_pointer = const T * |
| Type of the const pointer type.
|
|
using | reference = const T & |
| Type of the reference type.
|
|
using | const_reference = const T & |
| Type of the const reference type.
|
|
using | iterator = typename _view_type::iterator |
| Type of the iterator type.
|
|
using | const_iterator = typename _view_type::iterator |
| Type of the const iterator type.
|
|
using | reverse_iterator = typename _view_type::reverse_iterator |
| Type of the reverse iterator type.
|
|
using | const_reverse_iterator = typename _view_type::reverse_iterator |
| Type of the const reverse iterator type.
|
|
using | size_type = typename _view_type::size_type |
| Type of the size type.
|
|
using | difference_type = typename _view_type::difference_type |
| Type of the difference type.
|
|
|
template<class U , class V , typename std::enable_if<(_is_deleter_based< U >), bool >::type = true, typename = decltype( std::declval<U>()((size_t) 1) ), typename = decltype( std::declval<V>()((value_type *) nullptr) )> |
| rendered_path (path_view_component view, const std::locale &loc, U &&allocate, V &&deleter=AllocatorOrDeleter(), _custom_callable_deleter_tag={}) |
|
template<class U , class V , typename std::enable_if<(_is_deleter_based< U >), bool >::type = true, typename = decltype( std::declval<U>()((size_t) 1) ), typename = decltype( std::declval<V>()((value_type *) nullptr) )> |
| rendered_path (path_view_component view, U &&allocate, V &&deleter=AllocatorOrDeleter(), _custom_callable_deleter_tag={}) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
| rendered_path (path_view_component view, const std::locale &loc, pmr::memory_resource &mr, _memory_resource_tag={}) |
|
| rendered_path (path_view_component view, pmr::memory_resource &mr, _memory_resource_tag={}) |
|
template<class U , typename std::enable_if<(_is_allocator_based< U >), bool >::type = true, typename = decltype( std::declval<U>().allocate((size_t) 1) )> |
| rendered_path (path_view_component view, const std::locale &loc, U &&allocate, _stl_allocator_tag={}) |
|
template<class U , typename std::enable_if<(_is_allocator_based< U >), bool >::type = true, typename = decltype( std::declval<U>().allocate((size_t) 1) )> |
| rendered_path (path_view_component view, U &&allocate, _stl_allocator_tag={}) |
|
| rendered_path (path_view_component view, const std::locale &loc) |
|
| rendered_path (path_view_component view) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
template<class AllocatorOrDeleter2 , size_t _internal_buffer_size2, typename std::enable_if<(!std::is_same< rendered_path, rendered_path< ZeroTermination, T, AllocatorOrDeleter2, _internal_buffer_size2 > >::value), bool >::type = true, typename std::enable_if<(std::is_constructible< AllocatorOrDeleter, AllocatorOrDeleter2 >::value), bool >::type = true> |
| rendered_path (rendered_path< ZeroTermination, T, AllocatorOrDeleter2, _internal_buffer_size2 > &&o) noexcept |
| Construct from a compatible rendered_path .
|
|
| rendered_path (const rendered_path &)=delete |
|
| rendered_path (rendered_path &&o) noexcept |
|
rendered_path & | operator= (const rendered_path &)=delete |
|
rendered_path & | operator= (rendered_path &&o) noexcept |
|
void | reset () |
| Delete any held resources now.
|
|
value_type * | release () |
| Release from ownership any resources.
|
|
size_t | capacity () const noexcept |
| The storage capacity, which may be larger than size() if the internal buffer is in use.
|
|
bool | references_source () const noexcept |
| True if this rendered path refers to the source path view.
|
|
const AllocatorOrDeleter & | deleter () const noexcept |
| Access the custom deleter instance passed to the constructor.
|
|
AllocatorOrDeleter & | deleter () noexcept |
| Access the custom deleter instance passed to the constructor.
|
|
pmr::memory_resource * | memory_resource () noexcept |
| The memory resource passed to the constructor.
|
|
const AllocatorOrDeleter & | allocator () const noexcept |
| Access the custom allocator instance passed to the constructor.
|
|
AllocatorOrDeleter & | allocator () noexcept |
| Access the custom allocator instance passed to the constructor.
|
|
bool | operator== (const rendered_path &o) const noexcept |
| True if the bits backing the rendered path are identical.
|
|
bool | operator!= (const rendered_path &o) const noexcept |
| True if the bits backing the rendered path are non-identical.
|
|
constexpr basic_string_view< T > | as_string_view () const |
| As string view.
|
|
constexpr iterator | begin () noexcept |
| Begin iteration.
|
|
constexpr const_iterator | begin () const noexcept |
| Begin iteration.
|
|
constexpr const_iterator | cbegin () const noexcept |
| Begin iteration.
|
|
constexpr iterator | end () noexcept |
| End iteration.
|
|
constexpr const_iterator | end () const noexcept |
| End iteration.
|
|
constexpr const_iterator | cend () const noexcept |
| End iteration.
|
|
constexpr reverse_iterator | rbegin () noexcept |
| Begin reverse iteration.
|
|
constexpr const_reverse_iterator | rbegin () const noexcept |
| Begin reverse iteration.
|
|
constexpr const_reverse_iterator | crbegin () const noexcept |
| Begin reverse iteration.
|
|
constexpr reverse_iterator | rend () noexcept |
| End reverse iteration.
|
|
constexpr const_reverse_iterator | rend () const noexcept |
| End reverse iteration.
|
|
constexpr const_reverse_iterator | crend () const noexcept |
| End reverse iteration.
|
|
constexpr reference | operator[] (size_type idx) noexcept |
| Access.
|
|
constexpr const_reference | operator[] (size_type idx) const noexcept |
| Access.
|
|
constexpr reference | at (size_type idx) |
| Access.
|
|
constexpr const_reference | at (size_type idx) const |
| Access.
|
|
constexpr reference | front () noexcept |
| Access.
|
|
constexpr const_reference | front () const noexcept |
| Access.
|
|
constexpr reference | back () noexcept |
| Access.
|
|
constexpr const_reference | back () const noexcept |
| Access.
|
|
constexpr pointer | data () noexcept |
| Access.
|
|
constexpr const_pointer | data () const noexcept |
| Access.
|
|
constexpr size_type | size () const noexcept |
| Size.
|
|
constexpr size_type | length () const noexcept |
| Size.
|
|
constexpr size_type | max_size () const noexcept |
| Max size.
|
|
constexpr bool | empty () const noexcept |
| Empty.
|
|
constexpr _view_type | as_span () const noexcept |
| As span.
|
|
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, typename std::enable_if<(
is_source_acceptable< T >), bool >::type = true>
class llfio_v2_xxx::path_view_component::rendered_path< ZeroTermination, T, AllocatorOrDeleter, _internal_buffer_size, type >
Instantiate from a path_view_component
to get a path suitable for feeding to other code.
- Template Parameters
-
T | The destination encoding required. |
Deleter | A custom deleter OR STL allocator for any temporary buffer. |
_internal_buffer_size | Override the size of the internal temporary buffer, thus reducing stack space consumption (most compilers optimise away the internal temporary buffer if it can be proved it will never be used). The default is 1024 values of T . |
This makes the input to the path view component into a destination format suitable for consumption by other code. If the source has the same format as the destination, and the zero termination requirements are the same, the source is used directly without memory copying nor reencoding.
If the format is compatible, but the destination requires zero termination, and the source is not zero terminated, a straight memory copy is performed into the temporary buffer.
rendered_path
contains a temporary buffer sized according to the template parameter. Output below that amount involves no dynamic memory allocation. Output above that amount calls operator new[]
. You can use an externally supplied larger temporary buffer to avoid dynamic memory allocation in all situations.