[#bsl-basic_string-0faf-compare-06] = xref:bsl.adoc[bsl]::xref:bsl/basic_string-0faf.adoc[basic_string]::compare :relfileprefix: ../../ :mrdocs: Lexicographically compare the substring of this string of the specified `lhsNumChars` length starting at the specified `lhsPosition` (or the suffix of this string starting at `lhsPosition` if `lhsPosition + lhsNumChars > length()`) with the substring of the specified `other` string of the optionally specified `otherNumChars` length starting at the specified `otherPosition` (or the suffix of `other` starting at `otherPosition` if `otherPosition + otherNumChars > other.length()`). If `numChars` is not specified, `npos` is used. Return a negative value if the indicated substring of this string is less than the indicated substring of `other`, a positive value if it is greater than the indicated substring of `other`, and 0 in case of equality. `CHAR_TRAITS::lt` is used to compare characters. Throw `out_of_range` if `lhsPosition > length()` or `otherPosition > other.length()`. See {Lexicographical Comparisons}. == Synopsis Declared in `<bslstl_string.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int compare( xref:bsl/basic_string-0faf/size_type.adoc[size_type] lhsPosition, xref:bsl/basic_string-0faf/size_type.adoc[size_type] lhsNumChars, xref:bsl/basic_string-0faf.adoc[basic_string] const& other, xref:bsl/basic_string-0faf/size_type.adoc[size_type] otherPosition, xref:bsl/basic_string-0faf/size_type.adoc[size_type] otherNumChars = npos) const; ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#