std::string::max_size() as static member

c++, std

Solution

Why isn't max_size a static member of std::string?

Because max_size return value depends on the allocator instance that the string instance uses internally.

Problem

Why isn't `max_size` a static member of `std::string`? This compiles but I think its strange that a property common to all strings can only be accessed via an instance of a string: ``` std::size_t max_size = std::string().max_size(); ``` Why is it implemented like this?

Original source

Related problems