std::basic_string<CharT,Traits,Allocator>::max_size - cppreference.com

size_typemax_size()const;(noexcept since C++11)
(constexpr since C++20)Returns the maximum number of elements the string is able to hold due to system or library implementation limitations, i.e. std::distance(begin(),end()) for the largest string.

Parameters

(none)

Return value

Maximum number of characters.

Complexity

Constant.

Example

Run this code

#include<array>#include<climits>#include<iomanip>#include<iostream>#include<locale>#include<string>#include<typeinfo>#include<boost/core/demangle.hpp>template<typenameT>voidprint_basic_string_max_size(){std::basic_string<T>s;automax_size=s.max_size();std::cout.imbue(std::locale("en_US.UTF-8"));std::cout<<"basic_string<"<<boost::core::demangle(typeid(T).name())<<">:\n\t"<<max_size<<" = ";std::cout<<std::setprecision(3)<<(double)max_size<<" = ";std::cout.imbue(std::locale("C"));std::cout<<std::hex<<std::setfill('0')<<"0x"<<std::setw(sizeof(typenamedecltype(s)::size_type)<<1)<<max_size<<'\n'<<std::dec;};intmain(){std::cout<<"Pointer size: "<<CHAR_BIT*sizeof(void*)<<" bits\n""Maximum sizes:\n";print_basic_string_max_size<char>();print_basic_string_max_size<char16_t>();print_basic_string_max_size<char32_t>();print_basic_string_max_size<wchar_t>();print_basic_string_max_size<long>();usingCharT=std::array<char,01232>;print_basic_string_max_size<CharT>();}Possible output:

Pointer size: 64 bits Maximum sizes: basic_string<char>: 9,223,372,036,854,775,807 = 9.22e+18 = 0x7fffffffffffffff basic_string<char16_t>: 4,611,686,018,427,387,903 = 4.61e+18 = 0x3fffffffffffffff basic_string<char32_t>: 2,305,843,009,213,693,951 = 2.31e+18 = 0x1fffffffffffffff basic_string<wchar_t>: 2,305,843,009,213,693,951 = 2.31e+18 = 0x1fffffffffffffff basic_string<long>: 1,152,921,504,606,846,975 = 1.15e+18 = 0x0fffffffffffffff basic_string<std::array<char, 666ul>>: 13,848,906,962,244,407 = 1.38e+16 = 0x00313381ec031337 See also

returns the number of characters
(public member function)

[edit]

returns the number of characters
(public member function of std::basic_string_view<CharT,Traits>)

[edit]