[#boost-urls-segments_base]
= xref:boost.adoc[boost]::xref:boost/urls.adoc[urls]::segments&lowbar;base
:relfileprefix: ../../
:mrdocs:

Decoded path segment helper base

== Synopsis

Declared in `&lt;https://www.github.com/boostorg/url/blob/develop/include/boost/url/segments_base.hpp#Lundefined[boost&sol;url&sol;segments&lowbar;base&period;hpp]&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class segments&lowbar;base;
----

== Description

Provides the shared decoded path&hyphen;segment algorithms (iteration, lookup, comparison) used by xref:boost/urls/segments_view.adoc[`segments&lowbar;view`] and xref:boost/urls/segments_ref.adoc[`segments&lowbar;ref`]&period; This base cannot be instantiated directly&semi; instead, use one of the concrete containers below&period;

== Containers

* xref:boost/urls/segments_ref.adoc[`segments&lowbar;ref`]
* xref:boost/urls/segments_view.adoc[`segments&lowbar;view`]
* xref:boost/urls/segments_encoded_ref.adoc[`segments&lowbar;encoded&lowbar;ref`]
* xref:boost/urls/segments_encoded_view.adoc[`segments&lowbar;encoded&lowbar;view`]

== Types

[cols="1,4"]
|===
| Name| Description
| xref:boost/urls/segments_base/iterator.adoc[`iterator`] 
| A Bidirectional iterator to a path segment
| xref:boost/urls/segments_base/const_iterator.adoc[`const&lowbar;iterator`] 
| A Bidirectional iterator to a path segment
| xref:boost/urls/segments_base/const_reference.adoc[`const&lowbar;reference`] 
| The reference type
| xref:boost/urls/segments_base/difference_type.adoc[`difference&lowbar;type`] 
| A signed integer type used to represent differences&period;
| xref:boost/urls/segments_base/reference.adoc[`reference`] 
| The reference type
| xref:boost/urls/segments_base/size_type.adoc[`size&lowbar;type`] 
| An unsigned integer type used to represent size&period;
| xref:boost/urls/segments_base/value_type.adoc[`value&lowbar;type`] 
| The value type
|===

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:boost/urls/segments_base/back.adoc[`back`] 
| Return the last segment
| xref:boost/urls/segments_base/begin.adoc[`begin`] 
| Return an iterator to the beginning
| xref:boost/urls/segments_base/buffer.adoc[`buffer`] 
| Return the referenced character buffer&period;
| xref:boost/urls/segments_base/empty.adoc[`empty`] 
| Return true if there are no segments
| xref:boost/urls/segments_base/end.adoc[`end`] 
| Return an iterator to the end
| xref:boost/urls/segments_base/front.adoc[`front`] 
| Return the first segment
| xref:boost/urls/segments_base/is_absolute.adoc[`is&lowbar;absolute`] 
| Returns true if this references an absolute path&period;
| xref:boost/urls/segments_base/size.adoc[`size`] 
| Return the number of segments
|===

== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:boost/urls/segments_base/max_size.adoc[`max&lowbar;size`] 
| Return the maximum number of characters possible
|===

== Friends

[cols="1,4"]
|===
|Name|Description

| `xref:boost/urls/segments_view.adoc[boost::urls::segments&lowbar;view]`
| Non&hyphen;owning decoded path segment view
| `xref:boost/urls/segments_ref.adoc[boost::urls::segments&lowbar;ref]`
| Mutable decoded path segment proxy
| `xref:boost/urls/url_view_base.adoc[boost::urls::url&lowbar;view&lowbar;base]`
| Common functionality for containers
|===

== Derived Classes

[cols="1,4"]
|===
|Name|Description

| xref:boost/urls/segments_ref.adoc[`segments&lowbar;ref`]
| Mutable decoded path segment proxy
| xref:boost/urls/segments_view.adoc[`segments&lowbar;view`]
| Non&hyphen;owning decoded path segment view
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
