[#bsl-basic_string-0e-2constructor-078] = xref:bsl.adoc[bsl]::xref:bsl/basic_string-0e.adoc[basic_string<wchar_t>]::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` equals `npos`, 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. Throw `out_of_range` if `position > original.length()`. == Synopsis Declared in `<bslstl_string.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- basic_string( xref:bsl/basic_string-0faf.adoc[basic_string<wchar_t>] const& original, xref:bsl/basic_string-0e/size_type.adoc[size_type] position, xref:bsl/basic_string-0e/size_type.adoc[size_type] numChars, xref:bsl/allocator-0df.adoc[allocator<wchar_t>] const& basicAllocator = ALLOCATOR()); ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#