[#bsl-basic_string-01d-2constructor-01] = xref:bsl.adoc[bsl]::xref:bsl/basic_string-01d.adoc[basic_string<char8_t>]::basic_string :relfileprefix: ../../ :mrdocs: Create a string that has the same value as the substring starting at the specified `position` in the specified `original` string. Optionally specify the `basicAllocator` used to supply memory. If `basicAllocator` is not specified, a default‐constructed allocator is used. The contents of `original` are moved (in constant time) to the new string if `basicAllocator == original.get_allocator()`, and are copied (in linear time) using `basicAllocator` otherwise. `original` is left in a valid but unspecified state. Throw `out_of_range` if `position > original.length()`. == Synopsis Declared in `<bslstl_string.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- basic_string( xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef<basic_string<char8_t>>] original, xref:bsl/basic_string-01d/size_type.adoc[size_type] position, xref:bsl/allocator-0df.adoc[allocator<char8_t>] const& basicAllocator = ALLOCATOR()); ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#