106 Commits

Author SHA1 Message Date
Gennaro Prota 2ff9d3535e Don't qualify string_view in the available() test's pos/count append() case
Reason: Using the basic_string_view type used by the library.

This fixes the previous commit.
2026-04-24 07:05:02 +02:00
Gennaro Prota 8c44a96c8d Use std::string_view in the available() test's pos/count append() example
The test I added with available() passed "xyzwv" directly to the 3-arg
append(v, pos, count). That overload's viewable-T constraint excludes
const CharT*-convertible types (to avoid clashing with append(const
CharT*, size_type)), so the C-string literal doesn't match and there is
no viable 3-arg overload. Wrap the literal in std::string_view.
2026-04-24 06:41:11 +02:00
Gennaro Prota bf20b809ec Add basic_static_string::available()
This returns max_size() - size(), i.e. the number of characters that can
still be inserted before the string reaches its capacity. Intended as a
shorthand for capacity-capped writes in combination with the
pos/count-taking overloads of append, assign, and insert:

  str.append(sv, 0, str.available());

Addresses the ergonomic complaint in issue #81 without expanding the
overload set.

Closes issue #81.
2026-04-22 10:06:00 +02:00
Gennaro Prota 54eda39d91 Fix a typo in a comment ("compiles" for "compilers") 2026-04-21 11:33:22 +02:00
Gennaro Prota 0c5e5b8e58 Fix our deduction guide 2025-12-19 18:26:40 +01:00
Gennaro Prota 2175496c55 Condition the NTTP tests on __cpp_nontype_template_args
They were conditioned on detection of C++20 via __cplusplus, but Clang
10 and 11 don't support class types as NTTP, even though they report
C++20 via __cplusplus when -std=c++20 is used.
2025-12-19 18:23:33 +01:00
Gennaro Prota aee3c62957 Apply the workaround in the previous commit to Clang 3.7 and 9-19, too
Reason: They have the same issue as GCC 9.
2025-12-19 18:23:33 +01:00
Gennaro Prota 0e28b358dc Work around GCC 9 rejecting a legitimate pointer comparison in a constexpr context 2025-12-19 18:23:33 +01:00
Gennaro Prota 4dcfb39494 Replace the implementation of cxper_char_traits::move() with a simpler one
Reason: See the new code comment.
2025-12-19 18:23:33 +01:00
Krystian Stasiowski 67efdf6a9b Make basic_static_string usable as a NTTP 2025-12-19 18:23:33 +01:00
Gennaro Prota a526ebd1f6 Check that basic_static_string can be constructed and assigned from a C-style string in a constexpr context
This triggers a libstdc++ issue which was fixed in GCC 12.4 and 13.3:
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113200>. If our CI shows
we bump into that bug, we'll add a workaround.
2025-12-16 10:30:33 +01:00
Gennaro Prota a841869405 Remove a use of std::strcpy() to avoid a C4996 warning from MSVC 2025-10-24 11:00:21 +02:00
Alexander Grund 6f17b60377 Guard test requiring string_view 2025-10-24 10:11:37 +02:00
Gennaro Prota 7b564d8d26 Fix two macro names in the unit tests 2025-10-22 19:18:39 +02:00
Gennaro Prota 300781d954 Add a resize_and_overwrite() member
Reason: This is in preparation of the next commit. See its commit
message.
2025-10-09 17:45:16 +02:00
Alexander Grund 20afd07676 Pass char arrays instead of static_string instances to testR
Avoid stack overflow in MSVC caused by huge amount of static_string instances

Fixes #70
2025-10-06 17:22:47 +02:00
Alexander Grund 7f903ef7ce Add cxx11_hdr_type_traits B2 requirement
Avoid failures with GCC < 5
2025-10-06 17:22:47 +02:00
Arthur O'Dwyer 37a557d937 Make static_string trivially copyable 2025-10-03 18:42:10 +02:00
Alexander Grund 645bf0a27d Simplify testTS
Replace boolean by check for defaulted nullptr
2025-10-03 12:12:05 +02:00
Alexander Grund 5067dfce5f Use BOOST_TEST_EQ for to_static_string tests using floating point values 2025-10-03 12:12:05 +02:00
Alexander Grund d37197d773 Add CMake subdir test for CI 2025-10-03 12:12:05 +02:00
Rene Rivera d677c9436c Update build deps. 2025-05-02 19:21:11 +03:00
Rene Rivera f15a4d0586 Add missing import-search for cconfig/predef checks. 2025-05-02 19:21:11 +03:00
Rene Rivera 8f969a62f7 Make the library modular usable. 2025-05-02 19:21:11 +03:00
alandefreitas bff5cb65a5 Boost super-project tests target
fix #53
2024-02-20 13:53:27 -03:00
Krystian Stasiowski 42bb99ed25 support platforms without wchar_t
closes #51
2023-10-24 14:22:30 -04:00
Krystian Stasiowski 6275cd7fe3 disable string_view overloads when type is convertible to basic_static_string
fixes #47
2023-05-29 10:51:06 -04:00
alandefreitas ac84c4f40e string_view interoperability
fix #26
2023-01-19 19:57:32 -03:00
alandefreitas 82ff4e0679 static_string<0> does not memcpy
fix #41
2023-01-18 22:09:45 -03:00
alandefreitas 9c3d5febe7 tests include main header 2023-01-18 22:09:31 -03:00
alandefreitas bfce6eea90 fix unused-function warning 2022-11-03 22:48:35 -07:00
alandefreitas ffce33d483 fix array-bounds warning 2022-11-03 14:12:02 -07:00
alandefreitas 3e9489a7af update CMakeLists.txt
fix #4
2022-11-01 13:39:05 -07:00
sdarwin 7822f1b991 update CI
fix #31, fix #20
2022-10-31 16:09:33 -07:00
m-peko c5df271a1a Remove trailing spaces 2021-10-25 07:27:47 -04:00
m-peko 3a1efd2078 Implement erase_if function and related tests 2021-01-18 15:59:20 -05:00
Krystian Stasiowski 3784d039cd Add input iterator tests 2020-03-15 13:32:02 -04:00
Krystian Stasiowski 1f173aad46 Improve coverage 2020-03-12 13:31:00 -04:00
Krystian Stasiowski e7e54b2665 Fix throwing in constexpr and substr for gcc 5 2020-03-11 22:47:15 -04:00
Krystian Stasiowski b7de5db7b8 Change C++ constexpr to use pseudo char_traits 2020-03-11 22:47:15 -04:00
Krystian Stasiowski 5934a28124 Fix operator+ for non-full arrays 2020-03-11 22:47:15 -04:00
Krystian Stasiowski c47cdb5f9e Fix C4800 on msvc 2020-02-28 20:41:37 -05:00
Krystian Stasiowski 9bb941401d Fix syntax 2020-02-28 16:44:48 -05:00
Krystian Stasiowski c3e4148ee2 Fix msvc warning 2020-02-28 16:03:23 -05:00
Krystian Stasiowski d75f97bca5 Remove unused variable warnings 2020-02-28 14:21:09 -05:00
Krystian Stasiowski 971b663df1 Remove more warnings in tests 2020-02-28 14:08:21 -05:00
Krystian Stasiowski bbbc8a6290 Strike more warnings 2020-02-27 16:22:54 -05:00
Krystian Stasiowski 54c5d7cef4 Remove some warnings in tests 2020-02-27 15:51:09 -05:00
Krystian Stasiowski 0e11360cf1 Fix tests 2020-02-23 19:17:58 -05:00
Krystian Stasiowski 73d835e506 Remove debug 2020-02-22 23:34:53 -05:00