boost::urls::segments_view :: Boost Libraries Documentation

# boost::urls::segments_view

Non‐owning decoded path segment view

## Synopsis

Declared in `<boost/url/segments_view.hpp>`

    class segments_view
        : public segments_base

## Description

Presents the path of a URL as a read‐only bidirectional range of percent‐decoded segments. The range references the original buffer, so callers must keep that storage alive for as long as the view is accessed.

## Example

    url_view u( "/path/to/file.txt" );

    segments_view ps = u.segments();

    assert( ps.buffer().data() == u.buffer().data() );

Any percent‐escapes are decoded on demand when iterators are dereferenced.

## Iterator Invalidation

Changes to the underlying character buffer can invalidate iterators which reference it.

## Base Classes

Name | Description
--- | ---
`segments_base` | Decoded path segment helper base

## Types

Name | Description
`iterator` | A Bidirectional iterator to a path segment
`const_iterator` | A Bidirectional iterator to a path segment
`const_reference` | The reference type
`difference_type` | A signed integer type used to represent differences.
`reference` | The reference type
`size_type` | An unsigned integer type used to represent size.
`value_type` | The value type

## Member Functions

Name | Description
`segments_view` [constructor] | Constructor
`operator=` | Assignment
`back` | Return the last segment
`begin` | Return an iterator to the beginning
`buffer` | Return the referenced character buffer.
`empty` | Return true if there are no segments
`end` | Return an iterator to the end
`front` | Return the first segment
`is_absolute` | Returns true if this references an absolute path.
`size` | Return the number of segments

## Static Member Functions

Name | Description
`max_size` | Return the maximum number of characters possible

## Friends

Name | Description
--- | ---
`boost::urls::segments_ref` | Mutable decoded path segment proxy
`boost::urls::segments_encoded_view` | Non‐owning encoded path segment view
`boost::urls::url_view_base` | Common functionality for containers

## See Also

`segments_encoded_view`, `segments_encoded_ref`, `segments_ref`.

Created with MrDocs