[#bsl-basic_string-0faf-2constructor-0b] = xref:bsl.adoc[bsl]::xref:bsl/basic_string-0faf.adoc[basic_string]::basic_string :relfileprefix: ../../ :mrdocs: Create a string that has the same value as the substring of the specified `numChars` length starting at the specified `position` in the specified `original` string. If `numChars` is more than the available string length, then the remaining length of the string is used (i.e., `numChars` is set to `original.length() ‐ position`). 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>] original, xref:bsl/basic_string-0faf/size_type.adoc[size_type] position, xref:bsl/basic_string-0faf/size_type.adoc[size_type] numChars, ALLOCATOR const& basicAllocator = ALLOCATOR()); ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#