[#boost-urls-segments_encoded_view-2constructor-0e0] = xref:boost.adoc[boost]::xref:boost/urls.adoc[urls]::xref:boost/urls/segments_encoded_view.adoc[segments_encoded_view]::segments_encoded_view :relfileprefix: ../../../ :mrdocs: Constructor == Synopsis Declared in `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/segments_encoded_view.hpp#Lundefined[boost/url/segments_encoded_view.hpp]>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- segments_encoded_view( xref:boost/urls/segments_encoded_base/iterator.adoc[iterator] first, xref:boost/urls/segments_encoded_base/iterator.adoc[iterator] last) noexcept; ---- == Description This function creates a new xref:boost/urls/segments_encoded_view/2constructor-0b1.adoc[`segments_encoded_view`] from a pair of iterators referring to elements of another encoded segments view. The resulting view references the same underlying character buffer as the original. The constructed view preserves the original absolute flag when `first` selects the first segment and otherwise produces an absolute subview: if the source path is relative and `first == ps.begin()` the new view is relative, and in every other case the subview is absolute with the separator immediately preceding `*first` retained at the front. This ensures the underlying text can be reconstructed by concatenating the buffers of adjacent subviews. The caller is responsible for ensuring that the lifetime of the original buffer extends until the constructed view is no longer referenced. == Example [,cpp] ---- segments_encoded_view ps( "/path/to/file.txt" ); segments_encoded_view sub( std::next(ps.begin()), ps.end()); segments_encoded_view first_half( ps.begin(), std::next(ps.begin())); // sub represents "/to/file.txt" std::string combined( first_half.buffer().data(), first_half.buffer().size()); combined.append( sub.buffer().data(), sub.buffer().size()); BOOST_ASSERT(combined == ps.buffer()); ---- == Preconditions The iterators must be valid and belong to the same xref:boost/urls/segments_encoded_view/2constructor-0b1.adoc[`segments_encoded_view`]. == Postconditions `sub.buffer()` references characters in the original `ps.buffer()`. == Complexity Constant == Exception Safety Throws nothing. == Parameters [cols="1,4"] |=== |Name|Description | *first* | The beginning iterator. | *last* | The ending iterator. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#