File tree Expand file tree Collapse file tree 2 files changed +25
-5
lines changed Expand file tree Collapse file tree 2 files changed +25
-5
lines changed Original file line number Diff line number Diff line change @@ -55,7 +55,6 @@ CTLL_EXPORT template <size_t N> struct fixed_string {
55
55
#ifdef CTRE_STRING_IS_UTF8
56
56
size_t out{0 };
57
57
for (size_t i{0 }; i < N; ++i) {
58
- if ((i == (N-1 )) && (input[i] == 0 )) break ;
59
58
length_value_t info = length_and_value_of_utf8_code_point (input[i]);
60
59
switch (info.length ) {
61
60
case 6 :
@@ -85,15 +84,13 @@ CTLL_EXPORT template <size_t N> struct fixed_string {
85
84
#else
86
85
for (size_t i{0 }; i < N; ++i) {
87
86
content[i] = static_cast <uint8_t >(input[i]);
88
- if ((i == (N-1 )) && (input[i] == 0 )) break ;
89
87
real_size++;
90
88
}
91
89
#endif
92
90
#if __cpp_char8_t
93
91
} else if constexpr (std::is_same_v<T, char8_t >) {
94
92
size_t out{0 };
95
93
for (size_t i{0 }; i < N; ++i) {
96
- if ((i == (N-1 )) && (input[i] == 0 )) break ;
97
94
length_value_t info = length_and_value_of_utf8_code_point (input[i]);
98
95
switch (info.length ) {
99
96
case 6 :
@@ -135,15 +132,13 @@ CTLL_EXPORT template <size_t N> struct fixed_string {
135
132
}
136
133
}
137
134
} else {
138
- if ((i == (N-1 )) && (input[i] == 0 )) break ;
139
135
content[out++] = info.value ;
140
136
}
141
137
}
142
138
real_size = out;
143
139
} else if constexpr (std::is_same_v<T, wchar_t > || std::is_same_v<T, char32_t >) {
144
140
for (size_t i{0 }; i < N; ++i) {
145
141
content[i] = static_cast <char32_t >(input[i]);
146
- if ((i == (N-1 )) && (input[i] == 0 )) break ;
147
142
real_size++;
148
143
}
149
144
}
Original file line number Diff line number Diff line change
1
+ #include < ctll/fixed_string.hpp>
2
+
3
+ template <ctll::fixed_string Str> struct helper {
4
+ consteval bool correct () const noexcept {
5
+ return Str.correct ();
6
+ }
7
+ consteval size_t size () const noexcept {
8
+ return Str.size ();
9
+ }
10
+ };
11
+
12
+ constexpr auto a = helper<" \0\0 " >{};
13
+
14
+ static_assert (a.correct());
15
+ static_assert (a.size() == 2u );
16
+
17
+ constexpr auto b = helper<" \0 " >{};
18
+
19
+ static_assert (b.correct());
20
+ static_assert (b.size() == 1u );
21
+
22
+ constexpr auto c = helper<" " >{};
23
+
24
+ static_assert (c.correct());
25
+ static_assert (c.size() == 0u );
You can’t perform that action at this time.
0 commit comments