@@ -158,13 +158,13 @@ namespace ST
158
158
}
159
159
160
160
ST_DEPRECATED_IN_3_4 (" Use clear() instead" )
161
- buffer<char_T> &operator =(const null_t &) noexcept
161
+ buffer<char_T> &operator =(const null_t &) noexcept ST_LIFETIME_BOUND
162
162
{
163
163
clear ();
164
164
return *this ;
165
165
}
166
166
167
- buffer<char_T> &operator =(const buffer<char_T> ©)
167
+ buffer<char_T> &operator =(const buffer<char_T> ©) ST_LIFETIME_BOUND
168
168
{
169
169
if (this == ©)
170
170
return *this ;
@@ -186,7 +186,7 @@ namespace ST
186
186
return *this ;
187
187
}
188
188
189
- buffer<char_T> &operator =(buffer<char_T> &&move) noexcept
189
+ buffer<char_T> &operator =(buffer<char_T> &&move) noexcept ST_LIFETIME_BOUND
190
190
{
191
191
std::swap (m_chars, move.m_chars );
192
192
std::swap (m_size, move.m_size );
@@ -275,16 +275,17 @@ namespace ST
275
275
}
276
276
277
277
ST_NODISCARD
278
- char_T *data () noexcept { return m_chars; }
278
+ char_T *data () noexcept ST_LIFETIME_BOUND { return m_chars; }
279
279
280
280
ST_NODISCARD
281
- const char_T *data () const noexcept { return m_chars; }
281
+ const char_T *data () const noexcept ST_LIFETIME_BOUND { return m_chars; }
282
282
283
283
ST_NODISCARD
284
- const char_T *c_str () const noexcept { return m_chars; }
284
+ const char_T *c_str () const noexcept ST_LIFETIME_BOUND { return m_chars; }
285
285
286
286
ST_NODISCARD
287
- const char_T *c_str (const char_T *substitute) const noexcept
287
+ const char_T *c_str (const char_T *substitute ST_LIFETIME_BOUND)
288
+ const noexcept ST_LIFETIME_BOUND
288
289
{
289
290
return empty () ? substitute : m_chars;
290
291
}
@@ -296,107 +297,113 @@ namespace ST
296
297
bool empty () const noexcept { return m_size == 0 ; }
297
298
298
299
ST_NODISCARD
299
- char_T &at (size_t index)
300
+ char_T &at (size_t index) ST_LIFETIME_BOUND
300
301
{
301
302
if (index >= size ())
302
303
throw std::out_of_range (" Character index out of range" );
303
304
return m_chars[index ];
304
305
}
305
306
306
307
ST_NODISCARD
307
- const char_T &at (size_t index) const
308
+ const char_T &at (size_t index) const ST_LIFETIME_BOUND
308
309
{
309
310
if (index >= size ())
310
311
throw std::out_of_range (" Character index out of range" );
311
312
return m_chars[index ];
312
313
}
313
314
314
315
ST_NODISCARD
315
- char_T &operator [](size_t index) noexcept
316
+ char_T &operator [](size_t index) noexcept ST_LIFETIME_BOUND
316
317
{
317
318
return m_chars[index ];
318
319
}
319
320
320
321
ST_NODISCARD
321
- const char_T &operator [](size_t index) const noexcept
322
+ const char_T &operator [](size_t index) const noexcept ST_LIFETIME_BOUND
322
323
{
323
324
return m_chars[index ];
324
325
}
325
326
326
327
ST_NODISCARD
327
- char_T &front () noexcept
328
+ char_T &front () noexcept ST_LIFETIME_BOUND
328
329
{
329
330
return m_chars[0 ];
330
331
}
331
332
332
333
ST_NODISCARD
333
- const char_T &front () const noexcept
334
+ const char_T &front () const noexcept ST_LIFETIME_BOUND
334
335
{
335
336
return m_chars[0 ];
336
337
}
337
338
338
339
ST_NODISCARD
339
- char_T &back () noexcept
340
+ char_T &back () noexcept ST_LIFETIME_BOUND
340
341
{
341
342
return empty () ? m_chars[0 ] : m_chars[m_size - 1 ];
342
343
}
343
344
344
345
ST_NODISCARD
345
- const char_T &back () const noexcept
346
+ const char_T &back () const noexcept ST_LIFETIME_BOUND
346
347
{
347
348
return empty () ? m_chars[0 ] : m_chars[m_size - 1 ];
348
349
}
349
350
350
351
ST_NODISCARD
351
- iterator begin () noexcept { return m_chars; }
352
+ iterator begin () noexcept ST_LIFETIME_BOUND { return m_chars; }
352
353
353
354
ST_NODISCARD
354
- const_iterator begin () const noexcept { return m_chars; }
355
+ const_iterator begin () const noexcept ST_LIFETIME_BOUND { return m_chars; }
355
356
356
357
ST_NODISCARD
357
- const_iterator cbegin () const noexcept { return m_chars; }
358
+ const_iterator cbegin () const noexcept ST_LIFETIME_BOUND { return m_chars; }
358
359
359
360
ST_NODISCARD
360
- iterator end () noexcept { return m_chars + m_size; }
361
+ iterator end () noexcept ST_LIFETIME_BOUND { return m_chars + m_size; }
361
362
362
363
ST_NODISCARD
363
- const_iterator end () const noexcept { return m_chars + m_size; }
364
+ const_iterator end () const noexcept ST_LIFETIME_BOUND
365
+ {
366
+ return m_chars + m_size;
367
+ }
364
368
365
369
ST_NODISCARD
366
- const_iterator cend () const noexcept { return m_chars + m_size; }
370
+ const_iterator cend () const noexcept ST_LIFETIME_BOUND
371
+ {
372
+ return m_chars + m_size;
373
+ }
367
374
368
375
ST_NODISCARD
369
- reverse_iterator rbegin () noexcept
376
+ reverse_iterator rbegin () noexcept ST_LIFETIME_BOUND
370
377
{
371
378
return reverse_iterator (end ());
372
379
}
373
380
374
381
ST_NODISCARD
375
- const_reverse_iterator rbegin () const noexcept
382
+ const_reverse_iterator rbegin () const noexcept ST_LIFETIME_BOUND
376
383
{
377
384
return const_reverse_iterator (end ());
378
385
}
379
386
380
387
ST_NODISCARD
381
- const_reverse_iterator crbegin () const noexcept
388
+ const_reverse_iterator crbegin () const noexcept ST_LIFETIME_BOUND
382
389
{
383
390
return const_reverse_iterator (cend ());
384
391
}
385
392
386
393
ST_NODISCARD
387
- reverse_iterator rend () noexcept
394
+ reverse_iterator rend () noexcept ST_LIFETIME_BOUND
388
395
{
389
396
return reverse_iterator (begin ());
390
397
}
391
398
392
399
ST_NODISCARD
393
- const_reverse_iterator rend () const noexcept
400
+ const_reverse_iterator rend () const noexcept ST_LIFETIME_BOUND
394
401
{
395
402
return const_reverse_iterator (begin ());
396
403
}
397
404
398
405
ST_NODISCARD
399
- const_reverse_iterator crend () const noexcept
406
+ const_reverse_iterator crend () const noexcept ST_LIFETIME_BOUND
400
407
{
401
408
return const_reverse_iterator (cbegin ());
402
409
}
@@ -437,6 +444,7 @@ namespace ST
437
444
ST_NODISCARD
438
445
std::basic_string_view<char_T> view (size_t start = 0 ,
439
446
size_t length = ST_AUTO_SIZE) const &
447
+ ST_LIFETIME_BOUND
440
448
{
441
449
if (length == ST_AUTO_SIZE)
442
450
length = size () - start;
0 commit comments