@@ -62,12 +62,16 @@ class val<std::basic_string_view<CharT, Traits>> {
62
62
63
63
val<value_type> operator [](val<size_type> pos) const {
64
64
return invoke (
65
- +[](std::basic_string_view<CharT, Traits>* ptr, size_type pos) -> value_type { return ptr->operator [](pos); }, data_ptr, pos);
65
+ +[](std::basic_string_view<CharT, Traits>* ptr, size_type pos) -> value_type {
66
+ return ptr->operator [](pos);
67
+ },
68
+ data_ptr, pos);
66
69
}
67
70
68
71
const val<value_type> at (val<size_type> index) const {
69
72
return invoke (
70
- +[](std::basic_string_view<CharT, Traits>* ptr, size_type index) -> value_type { return ptr->at (index); }, data_ptr, index);
73
+ +[](std::basic_string_view<CharT, Traits>* ptr, size_type index) -> value_type { return ptr->at (index); },
74
+ data_ptr, index);
71
75
}
72
76
73
77
val<size_type> size () const noexcept {
@@ -107,22 +111,30 @@ class val<std::basic_string_view<CharT, Traits>> {
107
111
108
112
void remove_prefix (val<size_type> n) {
109
113
invoke (
110
- +[](std::basic_string_view<CharT, Traits>* ptr, size_type n) -> void { ptr->remove_prefix (n); }, data_ptr, n);
114
+ +[](std::basic_string_view<CharT, Traits>* ptr, size_type n) -> void { ptr->remove_prefix (n); }, data_ptr,
115
+ n);
111
116
}
112
117
113
118
void remove_suffix (val<size_type> n) {
114
119
invoke (
115
- +[](std::basic_string_view<CharT, Traits>* ptr, size_type n) -> void { ptr->remove_suffix (n); }, data_ptr, n);
120
+ +[](std::basic_string_view<CharT, Traits>* ptr, size_type n) -> void { ptr->remove_suffix (n); }, data_ptr,
121
+ n);
116
122
}
117
123
118
124
void swap (val<std::basic_string_view<CharT, Traits>>& v) {
119
125
invoke (
120
- +[](std::basic_string_view<CharT, Traits>* ptr, std::basic_string_view<CharT, Traits>* other) -> void { ptr->swap (*other); }, data_ptr, v.data_ptr );
126
+ +[](std::basic_string_view<CharT, Traits>* ptr, std::basic_string_view<CharT, Traits>* other) -> void {
127
+ ptr->swap (*other);
128
+ },
129
+ data_ptr, v.data_ptr );
121
130
}
122
131
123
132
val<size_type> copy (val<CharT*> dest, val<size_type> count, val<size_type> pos = 0 ) {
124
133
return invoke (
125
- +[](std::basic_string_view<CharT, Traits>* ptr, CharT* dest, size_type count, size_type pos) -> size_type { return ptr->copy (dest, count, pos); }, data_ptr, dest, count, pos);
134
+ +[](std::basic_string_view<CharT, Traits>* ptr, CharT* dest, size_type count, size_type pos) -> size_type {
135
+ return ptr->copy (dest, count, pos);
136
+ },
137
+ data_ptr, dest, count, pos);
126
138
}
127
139
128
140
/*
@@ -142,76 +154,104 @@ class val<std::basic_string_view<CharT, Traits>> {
142
154
143
155
val<int > compare (val<std::basic_string_view<CharT, Traits>>& v) {
144
156
return invoke (
145
- +[](std::basic_string_view<CharT, Traits>* ptr, std::basic_string_view<CharT, Traits>* other) -> int { return ptr->compare (*other); }, data_ptr, v.data_ptr );
157
+ +[](std::basic_string_view<CharT, Traits>* ptr, std::basic_string_view<CharT, Traits>* other) -> int {
158
+ return ptr->compare (*other);
159
+ },
160
+ data_ptr, v.data_ptr );
146
161
}
147
162
148
163
val<int > compare (val<size_type> pos1, val<size_type> count1, val<std::basic_string_view<CharT, Traits>>& v) {
149
164
return invoke (
150
- +[](std::basic_string_view<CharT, Traits>* ptr, size_type pos1, size_t count1, std::basic_string_view<CharT, Traits>* v) -> int { return ptr->compare (pos1, count1, *v); }, data_ptr, pos1, count1, v.data_ptr );
165
+ +[](std::basic_string_view<CharT, Traits>* ptr, size_type pos1, size_t count1,
166
+ std::basic_string_view<CharT, Traits>* v) -> int { return ptr->compare (pos1, count1, *v); },
167
+ data_ptr, pos1, count1, v.data_ptr );
151
168
}
152
169
153
- val<int > compare (val<size_type> pos1, val<size_type> count1, val<std::basic_string_view<CharT, Traits>>& v, val<size_type> pos2, val<size_type> count2) {
170
+ val<int > compare (val<size_type> pos1, val<size_type> count1, val<std::basic_string_view<CharT, Traits>>& v,
171
+ val<size_type> pos2, val<size_type> count2) {
154
172
return invoke (
155
- +[](std::basic_string_view<CharT, Traits>* ptr, size_type pos1, size_t count1, std::basic_string_view<CharT, Traits>* v, size_type pos2, size_t count2) -> int { return ptr->compare (pos1, count1, *v, pos2, count2); }, data_ptr,
156
- pos1, count1, v.data_ptr , pos2, count2);
173
+ +[](std::basic_string_view<CharT, Traits>* ptr, size_type pos1, size_t count1,
174
+ std::basic_string_view<CharT, Traits>* v, size_type pos2,
175
+ size_t count2) -> int { return ptr->compare (pos1, count1, *v, pos2, count2); },
176
+ data_ptr, pos1, count1, v.data_ptr , pos2, count2);
157
177
}
158
178
159
179
val<int > compare (val<const CharT*> s) {
160
180
return invoke (
161
- +[](std::basic_string_view<CharT, Traits>* ptr, const CharT* s) -> int { return ptr->compare (s); }, data_ptr, s);
181
+ +[](std::basic_string_view<CharT, Traits>* ptr, const CharT* s) -> int { return ptr->compare (s); },
182
+ data_ptr, s);
162
183
}
163
184
164
185
val<int > compare (val<size_type> pos1, val<size_type> count1, val<const CharT*> s) {
165
186
return invoke (
166
- +[](std::basic_string_view<CharT, Traits>* ptr, size_type pos1, size_t count1, const CharT* s) -> int { return ptr->compare (pos1, count1, s); }, data_ptr, pos1, count1, s);
187
+ +[](std::basic_string_view<CharT, Traits>* ptr, size_type pos1, size_t count1, const CharT* s) -> int {
188
+ return ptr->compare (pos1, count1, s);
189
+ },
190
+ data_ptr, pos1, count1, s);
167
191
}
168
192
169
- val<int > compare (val<size_type> pos1, val<size_type> count1, val<const CharT*> s, val<size_type> pos2, val<size_type> count2) {
193
+ val<int > compare (val<size_type> pos1, val<size_type> count1, val<const CharT*> s, val<size_type> pos2,
194
+ val<size_type> count2) {
170
195
return invoke (
171
- +[](std::basic_string_view<CharT, Traits>* ptr, size_type pos1, size_t count1, const CharT* s, size_type pos2, size_t count2) -> int { return ptr->compare (pos1, count1, s, pos2, count2); }, data_ptr, pos1, count1, s, pos2,
172
- count2);
196
+ +[](std::basic_string_view<CharT, Traits>* ptr, size_type pos1, size_t count1, const CharT* s,
197
+ size_type pos2, size_t count2) -> int { return ptr->compare (pos1, count1, s, pos2, count2); },
198
+ data_ptr, pos1, count1, s, pos2, count2);
173
199
}
174
200
#ifdef __cpp_lib_starts_ends_with
175
201
val<bool > start_with (val<std::basic_string_view<CharT, Traits>>& v) {
176
202
return invoke (
177
- +[](std::basic_string_view<CharT, Traits>* ptr, std::basic_string_view<CharT, Traits>* v) -> bool { return ptr->starts_with (*v); }, data_ptr, v.data_ptr );
203
+ +[](std::basic_string_view<CharT, Traits>* ptr, std::basic_string_view<CharT, Traits>* v) -> bool {
204
+ return ptr->starts_with (*v);
205
+ },
206
+ data_ptr, v.data_ptr );
178
207
}
179
208
180
209
val<bool > start_with (val<const CharT*> s) {
181
210
return invoke (
182
- +[](std::basic_string_view<CharT, Traits>* ptr, const CharT* s) -> bool { return ptr->starts_with (s); }, data_ptr, s);
211
+ +[](std::basic_string_view<CharT, Traits>* ptr, const CharT* s) -> bool { return ptr->starts_with (s); },
212
+ data_ptr, s);
183
213
}
184
214
185
215
val<bool > start_with (val<CharT> s) {
186
216
return invoke (
187
- +[](std::basic_string_view<CharT, Traits>* ptr, CharT s) -> bool { return ptr->starts_with (s); }, data_ptr, s);
217
+ +[](std::basic_string_view<CharT, Traits>* ptr, CharT s) -> bool { return ptr->starts_with (s); }, data_ptr,
218
+ s);
188
219
}
189
220
190
221
val<bool > end_with (val<std::basic_string_view<CharT, Traits>>& v) {
191
222
return invoke (
192
- +[](std::basic_string_view<CharT, Traits>* ptr, std::basic_string_view<CharT, Traits>* v) -> bool { return ptr->ends_with (*v); }, data_ptr, v.data_ptr );
223
+ +[](std::basic_string_view<CharT, Traits>* ptr, std::basic_string_view<CharT, Traits>* v) -> bool {
224
+ return ptr->ends_with (*v);
225
+ },
226
+ data_ptr, v.data_ptr );
193
227
}
194
228
195
229
val<bool > end_with (val<const CharT*> s) {
196
230
return invoke (
197
- +[](std::basic_string_view<CharT, Traits>* ptr, const CharT* s) -> bool { return ptr->ends_with (s); }, data_ptr, s);
231
+ +[](std::basic_string_view<CharT, Traits>* ptr, const CharT* s) -> bool { return ptr->ends_with (s); },
232
+ data_ptr, s);
198
233
}
199
234
200
235
val<bool > end_with (val<CharT> s) {
201
236
return invoke (
202
- +[](std::basic_string_view<CharT, Traits>* ptr, CharT s) -> bool { return ptr->ends_with (s); }, data_ptr, s);
237
+ +[](std::basic_string_view<CharT, Traits>* ptr, CharT s) -> bool { return ptr->ends_with (s); }, data_ptr,
238
+ s);
203
239
}
204
240
#endif
205
241
206
242
#ifdef __cpp_lib_string_contains
207
243
val<bool > contains (val<std::basic_string_view<CharT, Traits>>& v) {
208
244
return invoke (
209
- +[](std::basic_string_view<CharT, Traits>* ptr, std::basic_string_view<CharT, Traits>* v) -> bool { return ptr->contains (*v); }, data_ptr, v.data_ptr );
245
+ +[](std::basic_string_view<CharT, Traits>* ptr, std::basic_string_view<CharT, Traits>* v) -> bool {
246
+ return ptr->contains (*v);
247
+ },
248
+ data_ptr, v.data_ptr );
210
249
}
211
250
212
251
val<bool > contains (val<const CharT*> s) {
213
252
return invoke (
214
- +[](std::basic_string_view<CharT, Traits>* ptr, const CharT* s) -> bool { return ptr->contains (s); }, data_ptr, s);
253
+ +[](std::basic_string_view<CharT, Traits>* ptr, const CharT* s) -> bool { return ptr->contains (s); },
254
+ data_ptr, s);
215
255
}
216
256
217
257
val<bool > contains (val<CharT> s) {
0 commit comments