diff --git a/README.md b/README.md index 09c508c..0345b16 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ A fixed capacity string is useful when: segment is required. * A dynamically-resizable string is required within `constexpr` functions. * The storage location of the static_vector elements is required to be - within the string object itself (e.g. to support memcopy for serialization + within the string object itself (e.g. to support `memcpy` for serialization purposes). ## Design @@ -35,7 +35,17 @@ The over-arching design goal is to resemble the interface and behavior of `std::string` as much as possible. When any operation would exceed the maximum allowed size of the string, `std::length_error` is thrown. All algorithms which throw exceptions provide the strong exception safety -guarantee. +guarantee. This is intended to be a drop in replacement for `std::string`. +All the operations for `fixed_string` work when the source is within the string itself. + +The API of `fixed_string` only diverges from `std::string` in few places, +being `substr` for which this implementation returns a string view instead of `fixed_string, +and certain functions that will never throw are marked as `noexcept`, which diverges from +those of `std::string`. Every function that is in the C++20 specification of `std::string` is +present in this implementation, with the only difference being the lack of `constexpr` +for the time being. The avaliable overloads for `fixed_string` are identical to those +of `std::string`, except for `operator+` which is explicitly deleted as no reasonable implementation +would be possible, due to the difficulty in determining the size of the resulting `fixed_string`. ## Iterators diff --git a/include/boost/fixed_string/fixed_string.hpp b/include/boost/fixed_string/fixed_string.hpp index cc811b2..a40e489 100644 --- a/include/boost/fixed_string/fixed_string.hpp +++ b/include/boost/fixed_string/fixed_string.hpp @@ -17,8 +17,6 @@ #include #include #include -#include -#include #include namespace boost {