• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2[section:boost__static_strings__basic_static_string basic_static_string]
3
4A fixed-capacity string.
5[heading Synopsis]
6Defined in header [include_file boost/static_string/static_string.hpp]
7
8```
9template<
10    std::size_t N,
11    typename CharT,
12    typename Traits = std::char_traits<CharT>>
13class basic_static_string
14```
15
16[heading Types]
17[table [[Name][Description]]
18  [
19    [[*[link static_string.ref.boost__static_strings__basic_static_string.const_iterator const_iterator]]
20    ]
21    [
22
23The constant iterator type.
24    ]
25  ]
26  [
27    [[*[link static_string.ref.boost__static_strings__basic_static_string.const_pointer const_pointer]]
28    ]
29    [
30
31The constant pointer type.
32    ]
33  ]
34  [
35    [[*[link static_string.ref.boost__static_strings__basic_static_string.const_reference const_reference]]
36    ]
37    [
38
39The constant reference type.
40    ]
41  ]
42  [
43    [[*[link static_string.ref.boost__static_strings__basic_static_string.const_reverse_iterator const_reverse_iterator]]
44    ]
45    [
46
47The constant reverse iterator type.
48    ]
49  ]
50  [
51    [[*[link static_string.ref.boost__static_strings__basic_static_string.difference_type difference_type]]
52    ]
53    [
54
55The difference type.
56    ]
57  ]
58  [
59    [[*[link static_string.ref.boost__static_strings__basic_static_string.iterator iterator]]
60    ]
61    [
62
63The iterator type.
64    ]
65  ]
66  [
67    [[*[link static_string.ref.boost__static_strings__basic_static_string.pointer pointer]]
68    ]
69    [
70
71The pointer type.
72    ]
73  ]
74  [
75    [[*[link static_string.ref.boost__static_strings__basic_static_string.reference reference]]
76    ]
77    [
78
79The reference type.
80    ]
81  ]
82  [
83    [[*[link static_string.ref.boost__static_strings__basic_static_string.reverse_iterator reverse_iterator]]
84    ]
85    [
86
87The reverse iterator type.
88    ]
89  ]
90  [
91    [[*[link static_string.ref.boost__static_strings__basic_static_string.size_type size_type]]
92    ]
93    [
94
95The size type.
96    ]
97  ]
98  [
99    [[*[link static_string.ref.boost__static_strings__basic_static_string.string_view_type string_view_type]]
100    ]
101    [
102
103The string view type.
104    ]
105  ]
106  [
107    [[*[link static_string.ref.boost__static_strings__basic_static_string.traits_type traits_type]]
108    ]
109    [
110
111The traits type.
112    ]
113  ]
114  [
115    [[*[link static_string.ref.boost__static_strings__basic_static_string.value_type value_type]]
116    ]
117    [
118
119The character type.
120    ]
121  ]
122]
123[heading Member Functions]
124[table [[Name][Description]]
125  [
126    [[*[link static_string.ref.boost__static_strings__basic_static_string.append append]]
127    ]
128    [
129
130Append to the string.
131    ]
132  ]
133  [
134    [[*[link static_string.ref.boost__static_strings__basic_static_string.assign assign]]
135    ]
136    [
137
138Assign to the string.
139    ]
140  ]
141  [
142    [[*[link static_string.ref.boost__static_strings__basic_static_string.at at]]
143    ]
144    [
145
146Access a character with bounds checking.
147    ]
148  ]
149  [
150    [[*[link static_string.ref.boost__static_strings__basic_static_string.back back]]
151    ]
152    [
153
154Return the last character.
155    ]
156  ]
157  [
158    [[*[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string basic_static_string]]
159    ]
160    [
161
162Constructor.
163    ]
164  ]
165  [
166    [[*[link static_string.ref.boost__static_strings__basic_static_string.begin begin]]
167    ]
168    [
169
170Return an iterator to the beginning.
171    ]
172  ]
173  [
174    [[*[link static_string.ref.boost__static_strings__basic_static_string.c_str c_str]]
175    ]
176    [
177
178Return a pointer to the string.
179    ]
180  ]
181  [
182    [[*[link static_string.ref.boost__static_strings__basic_static_string.capacity capacity]]
183    ]
184    [
185
186Return the number of characters that can be stored.
187    ]
188  ]
189  [
190    [[*[link static_string.ref.boost__static_strings__basic_static_string.cbegin cbegin]]
191    ]
192    [
193
194Return an iterator to the beginning.
195    ]
196  ]
197  [
198    [[*[link static_string.ref.boost__static_strings__basic_static_string.cend cend]]
199    ]
200    [
201
202Return an iterator to the end.
203    ]
204  ]
205  [
206    [[*[link static_string.ref.boost__static_strings__basic_static_string.clear clear]]
207    ]
208    [
209
210Clear the contents.
211    ]
212  ]
213  [
214    [[*[link static_string.ref.boost__static_strings__basic_static_string.compare compare]]
215    ]
216    [
217
218Compare a string with the string.
219    ]
220  ]
221  [
222    [[*[link static_string.ref.boost__static_strings__basic_static_string.copy copy]]
223    ]
224    [
225
226Copy a substring to another string.
227    ]
228  ]
229  [
230    [[*[link static_string.ref.boost__static_strings__basic_static_string.crbegin crbegin]]
231    ]
232    [
233
234Return a reverse iterator to the beginning.
235    ]
236  ]
237  [
238    [[*[link static_string.ref.boost__static_strings__basic_static_string.crend crend]]
239    ]
240    [
241
242Return a reverse iterator to the end.
243    ]
244  ]
245  [
246    [[*[link static_string.ref.boost__static_strings__basic_static_string.data data]]
247    ]
248    [
249
250Return a pointer to the string.
251    ]
252  ]
253  [
254    [[*[link static_string.ref.boost__static_strings__basic_static_string.empty empty]]
255    ]
256    [
257
258Return if the string is empty.
259    ]
260  ]
261  [
262    [[*[link static_string.ref.boost__static_strings__basic_static_string.end end]]
263    ]
264    [
265
266Return an iterator to the end.
267    ]
268  ]
269  [
270    [[*[link static_string.ref.boost__static_strings__basic_static_string.ends_with ends_with]]
271    ]
272    [
273
274Return whether the string ends with a string.
275
276Return whether the string ends with a character.
277    ]
278  ]
279  [
280    [[*[link static_string.ref.boost__static_strings__basic_static_string.erase erase]]
281    ]
282    [
283
284Erase from the string.
285    ]
286  ]
287  [
288    [[*[link static_string.ref.boost__static_strings__basic_static_string.find find]]
289    ]
290    [
291
292Find the first occurrence of a string within the string.
293
294Find the first occurrence of a character within the string.
295    ]
296  ]
297  [
298    [[*[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of find_first_not_of]]
299    ]
300    [
301
302Find the first occurrence of a character not within the string.
303
304Find the first occurrence of any of the characters not within the string.
305
306Find the first occurrence of a character not equal to `c`.
307    ]
308  ]
309  [
310    [[*[link static_string.ref.boost__static_strings__basic_static_string.find_first_of find_first_of]]
311    ]
312    [
313
314Find the first occurrence of any of the characters within the string.
315
316Find the first occurrence of a character within the string.
317    ]
318  ]
319  [
320    [[*[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of find_last_not_of]]
321    ]
322    [
323
324Find the last occurrence of a character not within the string.
325
326Find the last occurrence of a character not equal to `c`.
327    ]
328  ]
329  [
330    [[*[link static_string.ref.boost__static_strings__basic_static_string.find_last_of find_last_of]]
331    ]
332    [
333
334Find the last occurrence of any of the characters within the string.
335
336Find the last occurrence of a character within the string.
337    ]
338  ]
339  [
340    [[*[link static_string.ref.boost__static_strings__basic_static_string.front front]]
341    ]
342    [
343
344Return the first character.
345    ]
346  ]
347  [
348    [[*[link static_string.ref.boost__static_strings__basic_static_string.insert insert]]
349    ]
350    [
351
352Insert into the string.
353    ]
354  ]
355  [
356    [[*[link static_string.ref.boost__static_strings__basic_static_string.length length]]
357    ]
358    [
359
360Return the size of the string.
361    ]
362  ]
363  [
364    [[*[link static_string.ref.boost__static_strings__basic_static_string.max_size max_size]]
365    ]
366    [
367
368Return the number of characters that can be stored.
369    ]
370  ]
371  [
372    [[*[link static_string.ref.boost__static_strings__basic_static_string.operator_string_view_type operator string_view_type]]
373    ]
374    [
375
376Convert to a string view referring to the string.
377    ]
378  ]
379  [
380    [[*[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_ operator+=]]
381    ]
382    [
383
384Append to the string.
385    ]
386  ]
387  [
388    [[*[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_ operator=]]
389    ]
390    [
391
392Assign to the string.
393    ]
394  ]
395  [
396    [[*[link static_string.ref.boost__static_strings__basic_static_string.operator_lb__rb_ operator\[\]]]
397    ]
398    [
399
400Access a character.
401    ]
402  ]
403  [
404    [[*[link static_string.ref.boost__static_strings__basic_static_string.pop_back pop_back]]
405    ]
406    [
407
408Remove the last character.
409    ]
410  ]
411  [
412    [[*[link static_string.ref.boost__static_strings__basic_static_string.push_back push_back]]
413    ]
414    [
415
416Append a character.
417    ]
418  ]
419  [
420    [[*[link static_string.ref.boost__static_strings__basic_static_string.rbegin rbegin]]
421    ]
422    [
423
424Return a reverse iterator to the beginning.
425    ]
426  ]
427  [
428    [[*[link static_string.ref.boost__static_strings__basic_static_string.rend rend]]
429    ]
430    [
431
432Return a reverse iterator to the end.
433    ]
434  ]
435  [
436    [[*[link static_string.ref.boost__static_strings__basic_static_string.replace replace]]
437    ]
438    [
439
440Replace a part of the string.
441    ]
442  ]
443  [
444    [[*[link static_string.ref.boost__static_strings__basic_static_string.reserve reserve]]
445    ]
446    [
447
448Increase the capacity.
449    ]
450  ]
451  [
452    [[*[link static_string.ref.boost__static_strings__basic_static_string.resize resize]]
453    ]
454    [
455
456Change the size of the string.
457    ]
458  ]
459  [
460    [[*[link static_string.ref.boost__static_strings__basic_static_string.rfind rfind]]
461    ]
462    [
463
464Find the last occurrence of a string within the string.
465
466Find the last occurrence of a character within the string.
467    ]
468  ]
469  [
470    [[*[link static_string.ref.boost__static_strings__basic_static_string.shrink_to_fit shrink_to_fit]]
471    ]
472    [
473
474Request the removal of unused capacity.
475    ]
476  ]
477  [
478    [[*[link static_string.ref.boost__static_strings__basic_static_string.size size]]
479    ]
480    [
481
482Return the size of the string.
483    ]
484  ]
485  [
486    [[*[link static_string.ref.boost__static_strings__basic_static_string.starts_with starts_with]]
487    ]
488    [
489
490Return whether the string begins with a string.
491
492Return whether the string begins with a character.
493    ]
494  ]
495  [
496    [[*[link static_string.ref.boost__static_strings__basic_static_string.substr substr]]
497    ]
498    [
499
500Return a substring.
501    ]
502  ]
503  [
504    [[*[link static_string.ref.boost__static_strings__basic_static_string.subview subview]]
505    ]
506    [
507
508Return a string view of a substring.
509    ]
510  ]
511  [
512    [[*[link static_string.ref.boost__static_strings__basic_static_string.swap swap]]
513    ]
514    [
515
516Swap two strings.
517    ]
518  ]
519]
520[heading Data Members]
521[table [[Name][Description]]
522  [
523    [[*[link static_string.ref.boost__static_strings__basic_static_string.npos npos]]
524    ]
525    [
526
527A special index.
528    ]
529  ]
530  [
531    [[*[link static_string.ref.boost__static_strings__basic_static_string.static_capacity static_capacity]]
532    ]
533    [
534
535Maximum size of the string excluding any null terminator.
536    ]
537  ]
538]
539[heading Description]
540These objects behave like `std::string` except that the storage is not dynamically allocated but rather fixed in size, and stored in the object itself.
541These strings offer performance advantages when an algorithm can execute with a reasonable upper limit on the size of a value.
542
543[heading Aliases]
544
545The following alias templates are provided for convenience:
546
547```
548template<std::size_t N>
549using static_string =
550  basic_static_string<N, char, std::char_traits<char>>;
551```
552
553
554```
555template<std::size_t N>
556using static_wstring =
557  basic_static_string<N, wchar_t, std::char_traits<wchar_t>>;
558```
559
560
561```
562template<std::size_t N>
563using static_u16string =
564  basic_static_string<N, char16_t, std::char_traits<char16_t>>;
565```
566
567
568```
569template<std::size_t N>
570using static_u32string =
571  basic_static_string<N, char32_t, std::char_traits<char32_t>>;
572```
573
574Addtionally, the alias template `static_u8string` is provided in C++20
575
576```
577template<std::size_t N>
578using static_u8string =
579  basic_static_string<N, char8_t, std::char_traits<char8_t>>;
580```
581
582
583[heading See Also]
584[link static_string.ref.boost__static_strings__to_static_string.overload1 `to_static_string`]
585
586[section:traits_type basic_static_string::traits_type]
587[indexterm2 traits_type..basic_static_string]
588
589
590The traits type.
591[heading Synopsis]
592```
593using traits_type = Traits;
594```
595
596[heading Description]
597
598[endsect]
599
600[section:value_type basic_static_string::value_type]
601[indexterm2 value_type..basic_static_string]
602
603
604The character type.
605[heading Synopsis]
606```
607using value_type = typename traits_type::char_type;
608```
609
610[heading Description]
611
612[endsect]
613
614[section:size_type basic_static_string::size_type]
615[indexterm2 size_type..basic_static_string]
616
617
618The size type.
619[heading Synopsis]
620```
621using size_type = std::size_t;
622```
623
624[heading Description]
625
626[endsect]
627
628[section:difference_type basic_static_string::difference_type]
629[indexterm2 difference_type..basic_static_string]
630
631
632The difference type.
633[heading Synopsis]
634```
635using difference_type = std::ptrdiff_t;
636```
637
638[heading Description]
639
640[endsect]
641
642[section:pointer basic_static_string::pointer]
643[indexterm2 pointer..basic_static_string]
644
645
646The pointer type.
647[heading Synopsis]
648```
649using pointer = value_type*;
650```
651
652[heading Description]
653
654[endsect]
655
656[section:reference basic_static_string::reference]
657[indexterm2 reference..basic_static_string]
658
659
660The reference type.
661[heading Synopsis]
662```
663using reference = value_type&;
664```
665
666[heading Description]
667
668[endsect]
669
670[section:const_pointer basic_static_string::const_pointer]
671[indexterm2 const_pointer..basic_static_string]
672
673
674The constant pointer type.
675[heading Synopsis]
676```
677using const_pointer = const value_type*;
678```
679
680[heading Description]
681
682[endsect]
683
684[section:const_reference basic_static_string::const_reference]
685[indexterm2 const_reference..basic_static_string]
686
687
688The constant reference type.
689[heading Synopsis]
690```
691using const_reference = const value_type&;
692```
693
694[heading Description]
695
696[endsect]
697
698[section:iterator basic_static_string::iterator]
699[indexterm2 iterator..basic_static_string]
700
701
702The iterator type.
703[heading Synopsis]
704```
705using iterator = value_type*;
706```
707
708[heading Description]
709
710[endsect]
711
712[section:const_iterator basic_static_string::const_iterator]
713[indexterm2 const_iterator..basic_static_string]
714
715
716The constant iterator type.
717[heading Synopsis]
718```
719using const_iterator = const value_type*;
720```
721
722[heading Description]
723
724[endsect]
725
726[section:reverse_iterator basic_static_string::reverse_iterator]
727[indexterm2 reverse_iterator..basic_static_string]
728
729
730The reverse iterator type.
731[heading Synopsis]
732```
733using reverse_iterator = std::reverse_iterator< iterator >;
734```
735
736[heading Description]
737
738[endsect]
739
740[section:const_reverse_iterator basic_static_string::const_reverse_iterator]
741[indexterm2 const_reverse_iterator..basic_static_string]
742
743
744The constant reverse iterator type.
745[heading Synopsis]
746```
747using const_reverse_iterator = std::reverse_iterator< const_iterator >;
748```
749
750[heading Description]
751
752[endsect]
753
754[section:string_view_type basic_static_string::string_view_type]
755[indexterm2 string_view_type..basic_static_string]
756
757
758The string view type.
759[heading Synopsis]
760```
761using string_view_type = basic_string_view< value_type, traits_type >;
762```
763
764[heading Description]
765
766[endsect]
767
768[section:static_capacity basic_static_string::static_capacity]
769[indexterm2 static_capacity..basic_static_string]
770
771
772Maximum size of the string excluding any null terminator.
773[heading Synopsis]
774```
775static
776constexpr size_type static_capacity = N;
777```
778
779[heading Description]
780
781[endsect]
782
783[section:npos basic_static_string::npos]
784[indexterm2 npos..basic_static_string]
785
786
787A special index.
788[heading Synopsis]
789```
790static
791constexpr size_type npos = ``[link static_string.ref.boost__static_strings__basic_static_string.size_type size_type]``(-1);
792```
793
794[heading Description]
795
796[endsect]
797
798[section:basic_static_string basic_static_string::basic_static_string]
799[indexterm2 basic_static_string..basic_static_string]
800
801
802Constructor.
803```
804constexpr
805``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload1 basic_static_string]``();
806  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload1 `more...`]]``
807
808constexpr
809``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload2 basic_static_string]``(
810    size_type count,
811    value_type ch);
812  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload2 `more...`]]``
813
814template<
815    std::size_t M>
816constexpr
817``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload3 basic_static_string]``(
818    const basic_static_string< M, CharT, Traits >& other,
819    size_type pos);
820  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload3 `more...`]]``
821
822template<
823    std::size_t M>
824constexpr
825``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload4 basic_static_string]``(
826    const basic_static_string< M, CharT, Traits >& other,
827    size_type pos,
828    size_type count);
829  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload4 `more...`]]``
830
831constexpr
832``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload5 basic_static_string]``(
833    const_pointer s,
834    size_type count);
835  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload5 `more...`]]``
836
837constexpr
838``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload6 basic_static_string]``(
839    const_pointer s);
840  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload6 `more...`]]``
841
842template<
843    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
844constexpr
845``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload7 basic_static_string]``(
846    InputIterator first,
847    InputIterator last);
848  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload7 `more...`]]``
849
850constexpr
851``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload8 basic_static_string]``(
852    const basic_static_string& other);
853  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload8 `more...`]]``
854
855template<
856    std::size_t M>
857constexpr
858``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload9 basic_static_string]``(
859    const basic_static_string< M, CharT, Traits >& other);
860  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload9 `more...`]]``
861
862constexpr
863``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload10 basic_static_string]``(
864    std::initializer_list< value_type > init);
865  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload10 `more...`]]``
866
867template<
868    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
869explicit
870constexpr
871``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload11 basic_static_string]``(
872    const T& t);
873  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload11 `more...`]]``
874
875template<
876    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
877constexpr
878``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload12 basic_static_string]``(
879    const T& t,
880    size_type pos,
881    size_type n);
882  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload12 `more...`]]``
883```
884
885[section:overload1 basic_static_string::basic_static_string (1 of 12 overloads)]
886
887Constructor.
888[heading Synopsis]
889```
890constexpr
891basic_static_string();
892```
893
894[heading Description]
895Construct an empty string
896
897[endsect]
898
899[section:overload2 basic_static_string::basic_static_string (2 of 12 overloads)]
900
901Constructor.
902[heading Synopsis]
903```
904constexpr
905basic_static_string(
906    size_type count,
907    value_type ch);
908```
909
910[heading Description]
911Construct the string with `count` copies of character `ch`.
912The behavior is undefined if `count >= npos`
913
914[endsect]
915
916[section:overload3 basic_static_string::basic_static_string (3 of 12 overloads)]
917
918Constructor.
919[heading Synopsis]
920```
921template<
922    std::size_t M>
923constexpr
924basic_static_string(
925    const basic_static_string< M, CharT, Traits >& other,
926    size_type pos);
927```
928
929[heading Description]
930Construct with a substring (pos, other.size()) of `other`.
931
932[endsect]
933
934[section:overload4 basic_static_string::basic_static_string (4 of 12 overloads)]
935
936Constructor.
937[heading Synopsis]
938```
939template<
940    std::size_t M>
941constexpr
942basic_static_string(
943    const basic_static_string< M, CharT, Traits >& other,
944    size_type pos,
945    size_type count);
946```
947
948[heading Description]
949Construct with a substring (pos, count) of `other`.
950
951[endsect]
952
953[section:overload5 basic_static_string::basic_static_string (5 of 12 overloads)]
954
955Constructor.
956[heading Synopsis]
957```
958constexpr
959basic_static_string(
960    const_pointer s,
961    size_type count);
962```
963
964[heading Description]
965Construct with the first `count` characters of `s`, including nulls.
966
967[endsect]
968
969[section:overload6 basic_static_string::basic_static_string (6 of 12 overloads)]
970
971Constructor.
972[heading Synopsis]
973```
974constexpr
975basic_static_string(
976    const_pointer s);
977```
978
979[heading Description]
980Construct from a null terminated string.
981
982[endsect]
983
984[section:overload7 basic_static_string::basic_static_string (7 of 12 overloads)]
985
986Constructor.
987[heading Synopsis]
988```
989template<
990    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
991constexpr
992basic_static_string(
993    InputIterator first,
994    InputIterator last);
995```
996
997[heading Description]
998Construct from a range of characters
999
1000[endsect]
1001
1002[section:overload8 basic_static_string::basic_static_string (8 of 12 overloads)]
1003
1004Constructor.
1005[heading Synopsis]
1006```
1007constexpr
1008basic_static_string(
1009    const basic_static_string& other);
1010```
1011
1012[heading Description]
1013Copy constructor.
1014
1015[endsect]
1016
1017[section:overload9 basic_static_string::basic_static_string (9 of 12 overloads)]
1018
1019Constructor.
1020[heading Synopsis]
1021```
1022template<
1023    std::size_t M>
1024constexpr
1025basic_static_string(
1026    const basic_static_string< M, CharT, Traits >& other);
1027```
1028
1029[heading Description]
1030Copy constructor.
1031
1032[endsect]
1033
1034[section:overload10 basic_static_string::basic_static_string (10 of 12 overloads)]
1035
1036Constructor.
1037[heading Synopsis]
1038```
1039constexpr
1040basic_static_string(
1041    std::initializer_list< value_type > init);
1042```
1043
1044[heading Description]
1045Construct from an initializer list
1046
1047[endsect]
1048
1049[section:overload11 basic_static_string::basic_static_string (11 of 12 overloads)]
1050
1051Constructor.
1052[heading Synopsis]
1053```
1054template<
1055    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
1056constexpr
1057basic_static_string(
1058    const T& t);
1059```
1060
1061[heading Description]
1062Construct from a object convertible to `string_view_type`
1063
1064[endsect]
1065
1066[section:overload12 basic_static_string::basic_static_string (12 of 12 overloads)]
1067
1068Constructor.
1069[heading Synopsis]
1070```
1071template<
1072    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
1073constexpr
1074basic_static_string(
1075    const T& t,
1076    size_type pos,
1077    size_type n);
1078```
1079
1080[heading Description]
1081Construct from any object convertible to `string_view_type`.
1082The range (pos, n) is extracted from the value obtained by converting `t` to `string_view_type`, and used to construct the string.
1083
1084[endsect]
1085
1086
1087[endsect]
1088
1089[section:operator_eq_ basic_static_string::operator=]
1090[indexterm2 operator=..basic_static_string]
1091
1092
1093Assign to the string.
1094```
1095template<
1096    std::size_t M>
1097constexpr basic_static_string&
1098``[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload1 operator=]``(
1099    const basic_static_string< M, CharT, Traits >& s);
1100  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload1 `more...`]]``
1101
1102constexpr basic_static_string&
1103``[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload2 operator=]``(
1104    const_pointer s);
1105  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload2 `more...`]]``
1106
1107constexpr basic_static_string&
1108``[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload3 operator=]``(
1109    value_type ch);
1110  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload3 `more...`]]``
1111
1112constexpr basic_static_string&
1113``[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload4 operator=]``(
1114    std::initializer_list< value_type > ilist);
1115  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload4 `more...`]]``
1116
1117template<
1118    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
1119constexpr basic_static_string&
1120``[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload5 operator=]``(
1121    const T& t);
1122  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload5 `more...`]]``
1123```
1124
1125[section:overload1 basic_static_string::operator= (1 of 5 overloads)]
1126
1127Assign to the string.
1128[heading Synopsis]
1129```
1130template<
1131    std::size_t M>
1132constexpr basic_static_string&
1133operator=(
1134    const basic_static_string< M, CharT, Traits >& s);
1135```
1136
1137[heading Description]
1138Replaces the contents with those of the string `s`.
1139
1140[heading Complexity]
1141
1142Linear in `s.size()`.
1143
1144[heading Exception Safety]
1145
1146Strong guarantee.
1147
1148[heading Template Parameters]
1149[table [[Type][Description]]
1150  [
1151    [`M`
1152    ]
1153    [
1154The size of the other string.
1155    ]
1156  ]
1157]
1158[heading Return Value]
1159`*this`
1160[heading Parameters]
1161[table [[Name][Description]]
1162  [
1163    [`s`
1164    ]
1165    [
1166The string to replace the contents with.
1167    ]
1168  ]
1169]
1170[heading Exceptions]
1171[table [[Type][Thrown On]]
1172  [
1173    [`std::length_error`
1174    ]
1175    [
1176s.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1177    ]
1178  ]
1179]
1180
1181[endsect]
1182
1183[section:overload2 basic_static_string::operator= (2 of 5 overloads)]
1184
1185Assign to the string.
1186[heading Synopsis]
1187```
1188constexpr basic_static_string&
1189operator=(
1190    const_pointer s);
1191```
1192
1193[heading Description]
1194Replaces the contents with those of `{s, s + traits_type::length(s))`.
1195
1196[heading Complexity]
1197
1198Linear in `count`.
1199
1200[heading Exception Safety]
1201
1202Strong guarantee.
1203
1204[heading Return Value]
1205`*this`
1206[heading Parameters]
1207[table [[Name][Description]]
1208  [
1209    [`s`
1210    ]
1211    [
1212A pointer to the string to copy from.
1213    ]
1214  ]
1215]
1216[heading Exceptions]
1217[table [[Type][Thrown On]]
1218  [
1219    [`std::length_error`
1220    ]
1221    [
1222traits_type::length(s) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1223    ]
1224  ]
1225]
1226
1227[endsect]
1228
1229[section:overload3 basic_static_string::operator= (3 of 5 overloads)]
1230
1231Assign to the string.
1232[heading Synopsis]
1233```
1234constexpr basic_static_string&
1235operator=(
1236    value_type ch);
1237```
1238
1239[heading Description]
1240Replaces the contents with a single copy of the character `ch`.
1241
1242[heading Complexity]
1243
1244Constant.
1245
1246[heading Exception Safety]
1247
1248Strong guarantee.
1249
1250[heading Return Value]
1251`*this`
1252[heading Parameters]
1253[table [[Name][Description]]
1254  [
1255    [`ch`
1256    ]
1257    [
1258The character to assign to.
1259    ]
1260  ]
1261]
1262[heading Exceptions]
1263[table [[Type][Thrown On]]
1264  [
1265    [`std::length_error`
1266    ]
1267    [
1268count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1269    ]
1270  ]
1271]
1272
1273[endsect]
1274
1275[section:overload4 basic_static_string::operator= (4 of 5 overloads)]
1276
1277Assign to the string.
1278[heading Synopsis]
1279```
1280constexpr basic_static_string&
1281operator=(
1282    std::initializer_list< value_type > ilist);
1283```
1284
1285[heading Description]
1286Replaces the contents with those of the initializer list `ilist`.
1287
1288[heading Complexity]
1289
1290Linear in `init.size()`.
1291
1292[heading Exception Safety]
1293
1294Strong guarantee.
1295
1296[heading Return Value]
1297`*this`
1298[heading Parameters]
1299[table [[Name][Description]]
1300  [
1301    [`ilist`
1302    ]
1303    [
1304The initializer list to copy from.
1305    ]
1306  ]
1307]
1308[heading Exceptions]
1309[table [[Type][Thrown On]]
1310  [
1311    [`std::length_error`
1312    ]
1313    [
1314ilist.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1315    ]
1316  ]
1317]
1318
1319[endsect]
1320
1321[section:overload5 basic_static_string::operator= (5 of 5 overloads)]
1322
1323Assign to the string.
1324[heading Synopsis]
1325```
1326template<
1327    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
1328constexpr basic_static_string&
1329operator=(
1330    const T& t);
1331```
1332
1333[heading Description]
1334Replaces the contents with those of `sv`, where `sv` is `string_view_type(t)`.
1335
1336[heading Complexity]
1337
1338Linear in `sv.size()`.
1339
1340[heading Exception Safety]
1341
1342Strong guarantee.
1343
1344[heading Remarks]
1345
1346The view can contain null characters.
1347
1348[heading Template Parameters]
1349[table [[Type][Description]]
1350  [
1351    [`T`
1352    ]
1353    [
1354A type convertible to `string_view_type`.
1355    ]
1356  ]
1357]
1358[heading Constraints]
1359
1360```
1361std::is_convertible<const T&, string_view>::value &&
1362!std::is_convertible<const T&, const CharT*>::value
1363```
1364
1365
1366[heading Return Value]
1367`*this`
1368[heading Parameters]
1369[table [[Name][Description]]
1370  [
1371    [`t`
1372    ]
1373    [
1374The object to assign from.
1375    ]
1376  ]
1377]
1378[heading Exceptions]
1379[table [[Type][Thrown On]]
1380  [
1381    [`std::length_error`
1382    ]
1383    [
1384sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1385    ]
1386  ]
1387]
1388
1389[endsect]
1390
1391
1392[endsect]
1393
1394[section:assign basic_static_string::assign]
1395[indexterm2 assign..basic_static_string]
1396
1397
1398Assign to the string.
1399```
1400constexpr basic_static_string&
1401``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload1 assign]``(
1402    size_type count,
1403    value_type ch);
1404  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload1 `more...`]]``
1405
1406template<
1407    std::size_t M>
1408constexpr basic_static_string&
1409``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload2 assign]``(
1410    const basic_static_string< M, CharT, Traits >& s);
1411  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload2 `more...`]]``
1412
1413template<
1414    std::size_t M>
1415constexpr basic_static_string&
1416``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload3 assign]``(
1417    const basic_static_string< M, CharT, Traits >& s,
1418    size_type pos,
1419    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
1420  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload3 `more...`]]``
1421
1422constexpr basic_static_string&
1423``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload4 assign]``(
1424    const_pointer s,
1425    size_type count);
1426  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload4 `more...`]]``
1427
1428constexpr basic_static_string&
1429``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload5 assign]``(
1430    const_pointer s);
1431  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload5 `more...`]]``
1432
1433template<
1434    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
1435constexpr basic_static_string&
1436``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload6 assign]``(
1437    InputIterator first,
1438    InputIterator last);
1439  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload6 `more...`]]``
1440
1441constexpr basic_static_string&
1442``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload7 assign]``(
1443    std::initializer_list< value_type > ilist);
1444  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload7 `more...`]]``
1445
1446template<
1447    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
1448constexpr basic_static_string&
1449``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload8 assign]``(
1450    const T& t);
1451  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload8 `more...`]]``
1452
1453template<
1454    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
1455basic_static_string&
1456``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload9 assign]``(
1457    const T& t,
1458    size_type pos,
1459    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
1460  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload9 `more...`]]``
1461```
1462
1463[section:overload1 basic_static_string::assign (1 of 9 overloads)]
1464
1465Assign to the string.
1466[heading Synopsis]
1467```
1468constexpr basic_static_string&
1469assign(
1470    size_type count,
1471    value_type ch);
1472```
1473
1474[heading Description]
1475Replaces the contents with `count` copies of character `ch`.
1476
1477[heading Complexity]
1478
1479Linear in `count`.
1480
1481[heading Exception Safety]
1482
1483Strong guarantee.
1484
1485[heading Return Value]
1486`*this`
1487[heading Parameters]
1488[table [[Name][Description]]
1489  [
1490    [`count`
1491    ]
1492    [
1493The size of the resulting string.
1494    ]
1495  ]
1496  [
1497    [`ch`
1498    ]
1499    [
1500The value to initialize characters of the string with.
1501    ]
1502  ]
1503]
1504[heading Exceptions]
1505[table [[Type][Thrown On]]
1506  [
1507    [`std::length_error`
1508    ]
1509    [
1510count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1511    ]
1512  ]
1513]
1514
1515[endsect]
1516
1517[section:overload2 basic_static_string::assign (2 of 9 overloads)]
1518
1519Assign to the string.
1520[heading Synopsis]
1521```
1522template<
1523    std::size_t M>
1524constexpr basic_static_string&
1525assign(
1526    const basic_static_string< M, CharT, Traits >& s);
1527```
1528
1529[heading Description]
1530Replaces the contents with those of the string `s`.
1531
1532[heading Complexity]
1533
1534Linear in `s.size()`.
1535
1536[heading Exception Safety]
1537
1538Strong guarantee.
1539
1540[heading Template Parameters]
1541[table [[Type][Description]]
1542  [
1543    [`M`
1544    ]
1545    [
1546The size of the other string.
1547    ]
1548  ]
1549]
1550[heading Return Value]
1551`*this`
1552[heading Parameters]
1553[table [[Name][Description]]
1554  [
1555    [`s`
1556    ]
1557    [
1558The string to replace the contents with.
1559    ]
1560  ]
1561]
1562[heading Exceptions]
1563[table [[Type][Thrown On]]
1564  [
1565    [`std::length_error`
1566    ]
1567    [
1568s.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1569    ]
1570  ]
1571]
1572
1573[endsect]
1574
1575[section:overload3 basic_static_string::assign (3 of 9 overloads)]
1576
1577Assign to the string.
1578[heading Synopsis]
1579```
1580template<
1581    std::size_t M>
1582constexpr basic_static_string&
1583assign(
1584    const basic_static_string< M, CharT, Traits >& s,
1585    size_type pos,
1586    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
1587```
1588
1589[heading Description]
1590Replaces the contents with those of the string `sub`, where `sub` is `s.substr(pos, count)`.
1591
1592[heading Complexity]
1593
1594Linear in `sub.size()`.
1595
1596[heading Exception Safety]
1597
1598Strong guarantee.
1599
1600[heading Template Parameters]
1601[table [[Type][Description]]
1602  [
1603    [`M`
1604    ]
1605    [
1606The capacity of the other string.
1607    ]
1608  ]
1609]
1610[heading Return Value]
1611`*this`
1612[heading Parameters]
1613[table [[Name][Description]]
1614  [
1615    [`s`
1616    ]
1617    [
1618The string to replace the contents with.
1619    ]
1620  ]
1621  [
1622    [`pos`
1623    ]
1624    [
1625The index at which to begin the substring.
1626    ]
1627  ]
1628  [
1629    [`count`
1630    ]
1631    [
1632The size of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
1633    ]
1634  ]
1635]
1636[heading Exceptions]
1637[table [[Type][Thrown On]]
1638  [
1639    [`std::length_error`
1640    ]
1641    [
1642sub.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1643    ]
1644  ]
1645]
1646
1647[endsect]
1648
1649[section:overload4 basic_static_string::assign (4 of 9 overloads)]
1650
1651Assign to the string.
1652[heading Synopsis]
1653```
1654constexpr basic_static_string&
1655assign(
1656    const_pointer s,
1657    size_type count);
1658```
1659
1660[heading Description]
1661Replaces the contents with those of `{s, s + count)`.
1662
1663[heading Complexity]
1664
1665Linear in `count`.
1666
1667[heading Exception Safety]
1668
1669Strong guarantee.
1670
1671[heading Remarks]
1672
1673The range can contain null characters.
1674
1675[heading Return Value]
1676`*this`
1677[heading Parameters]
1678[table [[Name][Description]]
1679  [
1680    [`count`
1681    ]
1682    [
1683The number of characters to copy.
1684    ]
1685  ]
1686  [
1687    [`s`
1688    ]
1689    [
1690A pointer to the string to copy from.
1691    ]
1692  ]
1693]
1694[heading Exceptions]
1695[table [[Type][Thrown On]]
1696  [
1697    [`std::length_error`
1698    ]
1699    [
1700count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1701    ]
1702  ]
1703]
1704
1705[endsect]
1706
1707[section:overload5 basic_static_string::assign (5 of 9 overloads)]
1708
1709Assign to the string.
1710[heading Synopsis]
1711```
1712constexpr basic_static_string&
1713assign(
1714    const_pointer s);
1715```
1716
1717[heading Description]
1718Replaces the contents with those of `{s, s + traits_type::length(s))`.
1719
1720[heading Complexity]
1721
1722Linear in `count`.
1723
1724[heading Exception Safety]
1725
1726Strong guarantee.
1727
1728[heading Return Value]
1729`*this`
1730[heading Parameters]
1731[table [[Name][Description]]
1732  [
1733    [`s`
1734    ]
1735    [
1736A pointer to the string to copy from.
1737    ]
1738  ]
1739]
1740[heading Exceptions]
1741[table [[Type][Thrown On]]
1742  [
1743    [`std::length_error`
1744    ]
1745    [
1746traits_type::length(s) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1747    ]
1748  ]
1749]
1750
1751[endsect]
1752
1753[section:overload6 basic_static_string::assign (6 of 9 overloads)]
1754
1755Assign to the string.
1756[heading Synopsis]
1757```
1758template<
1759    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
1760constexpr basic_static_string&
1761assign(
1762    InputIterator first,
1763    InputIterator last);
1764```
1765
1766[heading Description]
1767Replaces the contents with the characters in the range `{first, last)`.
1768
1769[heading Complexity]
1770
1771Linear in `std::distance(first, last)`.
1772
1773[heading Exception Safety]
1774
1775Strong guarantee.
1776
1777[heading Template Parameters]
1778[table [[Type][Description]]
1779  [
1780    [`InputIterator`
1781    ]
1782    [
1783The type of the iterators.
1784    ]
1785  ]
1786]
1787[heading Constraints]
1788
1789`InputIterator`satisfies [*InputIterator].
1790
1791[heading Return Value]
1792`*this`
1793[heading Parameters]
1794[table [[Name][Description]]
1795  [
1796    [`first`
1797    ]
1798    [
1799An iterator referring to the first character to assign.
1800    ]
1801  ]
1802  [
1803    [`last`
1804    ]
1805    [
1806An iterator past the end of the range to assign from.
1807    ]
1808  ]
1809]
1810[heading Exceptions]
1811[table [[Type][Thrown On]]
1812  [
1813    [`std::length_error`
1814    ]
1815    [
1816std::distance(first, last) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1817    ]
1818  ]
1819]
1820
1821[endsect]
1822
1823[section:overload7 basic_static_string::assign (7 of 9 overloads)]
1824
1825Assign to the string.
1826[heading Synopsis]
1827```
1828constexpr basic_static_string&
1829assign(
1830    std::initializer_list< value_type > ilist);
1831```
1832
1833[heading Description]
1834Replaces the contents with those of the initializer list `ilist`.
1835
1836[heading Complexity]
1837
1838Linear in `init.size()`.
1839
1840[heading Exception Safety]
1841
1842Strong guarantee.
1843
1844[heading Return Value]
1845`*this`
1846[heading Parameters]
1847[table [[Name][Description]]
1848  [
1849    [`ilist`
1850    ]
1851    [
1852The initializer list to copy from.
1853    ]
1854  ]
1855]
1856[heading Exceptions]
1857[table [[Type][Thrown On]]
1858  [
1859    [`std::length_error`
1860    ]
1861    [
1862ilist.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1863    ]
1864  ]
1865]
1866
1867[endsect]
1868
1869[section:overload8 basic_static_string::assign (8 of 9 overloads)]
1870
1871Assign to the string.
1872[heading Synopsis]
1873```
1874template<
1875    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
1876constexpr basic_static_string&
1877assign(
1878    const T& t);
1879```
1880
1881[heading Description]
1882Replaces the contents with those of `sv`, where `sv` is `string_view_type(t)`.
1883
1884[heading Complexity]
1885
1886Linear in `sv.size()`.
1887
1888[heading Exception Safety]
1889
1890Strong guarantee.
1891
1892[heading Remarks]
1893
1894The view can contain null characters.
1895
1896[heading Template Parameters]
1897[table [[Type][Description]]
1898  [
1899    [`T`
1900    ]
1901    [
1902A type convertible to `string_view_type`.
1903    ]
1904  ]
1905]
1906[heading Constraints]
1907
1908```
1909std::is_convertible<const T&, string_view>::value &&
1910!std::is_convertible<const T&, const CharT*>::value
1911```
1912
1913
1914[heading Return Value]
1915`*this`
1916[heading Parameters]
1917[table [[Name][Description]]
1918  [
1919    [`t`
1920    ]
1921    [
1922The object to assign from.
1923    ]
1924  ]
1925]
1926[heading Exceptions]
1927[table [[Type][Thrown On]]
1928  [
1929    [`std::length_error`
1930    ]
1931    [
1932sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
1933    ]
1934  ]
1935]
1936
1937[endsect]
1938
1939[section:overload9 basic_static_string::assign (9 of 9 overloads)]
1940
1941Assign to the string.
1942[heading Synopsis]
1943```
1944template<
1945    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
1946basic_static_string&
1947assign(
1948    const T& t,
1949    size_type pos,
1950    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
1951```
1952
1953[heading Description]
1954Replaces the contents with those of the substring `sv`, where `sv` is `string_view_type(t).substr(pos, count)`.
1955
1956[heading Complexity]
1957
1958Linear in `sv.size()`.
1959
1960[heading Exception Safety]
1961
1962Strong guarantee.
1963
1964[heading Remarks]
1965
1966The view can contain null characters.
1967
1968[heading Template Parameters]
1969[table [[Type][Description]]
1970  [
1971    [`T`
1972    ]
1973    [
1974A type convertible to `string_view_type`.
1975    ]
1976  ]
1977]
1978[heading Constraints]
1979
1980```
1981std::is_convertible<const T&, string_view>::value &&
1982!std::is_convertible<const T&, const CharT*>::value
1983```
1984
1985
1986[heading Return Value]
1987`*this`
1988[heading Parameters]
1989[table [[Name][Description]]
1990  [
1991    [`t`
1992    ]
1993    [
1994The object to assign from.
1995    ]
1996  ]
1997  [
1998    [`pos`
1999    ]
2000    [
2001The index at which to begin the substring.
2002    ]
2003  ]
2004  [
2005    [`count`
2006    ]
2007    [
2008The size of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
2009    ]
2010  ]
2011]
2012[heading Exceptions]
2013[table [[Type][Thrown On]]
2014  [
2015    [`std::length_error`
2016    ]
2017    [
2018sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
2019    ]
2020  ]
2021]
2022
2023[endsect]
2024
2025
2026[endsect]
2027
2028[section:at basic_static_string::at]
2029[indexterm2 at..basic_static_string]
2030
2031
2032Access a character with bounds checking.
2033```
2034constexpr reference
2035``[link static_string.ref.boost__static_strings__basic_static_string.at.overload1 at]``(
2036    size_type pos);
2037  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.at.overload1 `more...`]]``
2038
2039constexpr const_reference
2040``[link static_string.ref.boost__static_strings__basic_static_string.at.overload2 at]``(
2041    size_type pos) const;
2042  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.at.overload2 `more...`]]``
2043```
2044
2045[section:overload1 basic_static_string::at (1 of 2 overloads)]
2046
2047Access a character with bounds checking.
2048[heading Synopsis]
2049```
2050constexpr reference
2051at(
2052    size_type pos);
2053```
2054
2055[heading Description]
2056Returns a reference to the character at index `pos`.
2057
2058[heading Complexity]
2059
2060Constant.
2061
2062[heading Exception Safety]
2063
2064Strong guarantee.
2065
2066[heading Parameters]
2067[table [[Name][Description]]
2068  [
2069    [`pos`
2070    ]
2071    [
2072The index to access.
2073    ]
2074  ]
2075]
2076[heading Exceptions]
2077[table [[Type][Thrown On]]
2078  [
2079    [`std::out_of_range`
2080    ]
2081    [
2082pos >= [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
2083    ]
2084  ]
2085]
2086
2087[endsect]
2088
2089[section:overload2 basic_static_string::at (2 of 2 overloads)]
2090
2091Access a character with bounds checking.
2092[heading Synopsis]
2093```
2094constexpr const_reference
2095at(
2096    size_type pos) const;
2097```
2098
2099[heading Description]
2100Returns a reference to the character at index `pos`.
2101
2102[heading Complexity]
2103
2104Constant.
2105
2106[heading Exception Safety]
2107
2108Strong guarantee.
2109
2110[heading Parameters]
2111[table [[Name][Description]]
2112  [
2113    [`pos`
2114    ]
2115    [
2116The index to access.
2117    ]
2118  ]
2119]
2120[heading Exceptions]
2121[table [[Type][Thrown On]]
2122  [
2123    [`std::out_of_range`
2124    ]
2125    [
2126pos >= [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
2127    ]
2128  ]
2129]
2130
2131[endsect]
2132
2133
2134[endsect]
2135
2136[section:operator_lb__rb_ basic_static_string::operator\[\]]
2137[indexterm2 operator\[\]..basic_static_string]
2138
2139
2140Access a character.
2141```
2142constexpr reference
2143``[link static_string.ref.boost__static_strings__basic_static_string.operator_lb__rb_.overload1 operator\[\]]``(
2144    size_type pos);
2145  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_lb__rb_.overload1 `more...`]]``
2146
2147constexpr const_reference
2148``[link static_string.ref.boost__static_strings__basic_static_string.operator_lb__rb_.overload2 operator\[\]]``(
2149    size_type pos) const;
2150  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_lb__rb_.overload2 `more...`]]``
2151```
2152
2153[section:overload1 basic_static_string::operator\[\] (1 of 2 overloads)]
2154
2155Access a character.
2156[heading Synopsis]
2157```
2158constexpr reference
2159operator[](
2160    size_type pos);
2161```
2162
2163[heading Description]
2164Returns a reference to the character at index `pos`.
2165
2166[heading Complexity]
2167
2168Constant.
2169
2170[heading Precondition]
2171
2172`pos >= size`
2173
2174[heading Parameters]
2175[table [[Name][Description]]
2176  [
2177    [`pos`
2178    ]
2179    [
2180The index to access.
2181    ]
2182  ]
2183]
2184
2185[endsect]
2186
2187[section:overload2 basic_static_string::operator\[\] (2 of 2 overloads)]
2188
2189Access a character.
2190[heading Synopsis]
2191```
2192constexpr const_reference
2193operator[](
2194    size_type pos) const;
2195```
2196
2197[heading Description]
2198Returns a reference to the character at index `pos`.
2199
2200[heading Complexity]
2201
2202Constant.
2203
2204[heading Precondition]
2205
2206`pos >= size`
2207
2208[heading Parameters]
2209[table [[Name][Description]]
2210  [
2211    [`pos`
2212    ]
2213    [
2214The index to access.
2215    ]
2216  ]
2217]
2218
2219[endsect]
2220
2221
2222[endsect]
2223
2224[section:front basic_static_string::front]
2225[indexterm2 front..basic_static_string]
2226
2227
2228Return the first character.
2229```
2230constexpr reference
2231``[link static_string.ref.boost__static_strings__basic_static_string.front.overload1 front]``();
2232  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.front.overload1 `more...`]]``
2233
2234constexpr const_reference
2235``[link static_string.ref.boost__static_strings__basic_static_string.front.overload2 front]``() const;
2236  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.front.overload2 `more...`]]``
2237```
2238
2239[section:overload1 basic_static_string::front (1 of 2 overloads)]
2240
2241Return the first character.
2242[heading Synopsis]
2243```
2244constexpr reference
2245front();
2246```
2247
2248[heading Description]
2249Returns a reference to the first character.
2250
2251[heading Complexity]
2252
2253Constant.
2254
2255[heading Precondition]
2256
2257not [link static_string.ref.boost__static_strings__basic_static_string.empty `empty()`]
2258
2259[endsect]
2260
2261[section:overload2 basic_static_string::front (2 of 2 overloads)]
2262
2263Return the first character.
2264[heading Synopsis]
2265```
2266constexpr const_reference
2267front() const;
2268```
2269
2270[heading Description]
2271Returns a reference to the first character.
2272
2273[heading Complexity]
2274
2275Constant.
2276
2277[heading Precondition]
2278
2279not [link static_string.ref.boost__static_strings__basic_static_string.empty `empty()`]
2280
2281[endsect]
2282
2283
2284[endsect]
2285
2286[section:back basic_static_string::back]
2287[indexterm2 back..basic_static_string]
2288
2289
2290Return the last character.
2291```
2292constexpr reference
2293``[link static_string.ref.boost__static_strings__basic_static_string.back.overload1 back]``();
2294  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.back.overload1 `more...`]]``
2295
2296constexpr const_reference
2297``[link static_string.ref.boost__static_strings__basic_static_string.back.overload2 back]``() const;
2298  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.back.overload2 `more...`]]``
2299```
2300
2301[section:overload1 basic_static_string::back (1 of 2 overloads)]
2302
2303Return the last character.
2304[heading Synopsis]
2305```
2306constexpr reference
2307back();
2308```
2309
2310[heading Description]
2311Returns a reference to the last character.
2312
2313[heading Complexity]
2314
2315Constant.
2316
2317[heading Precondition]
2318
2319not [link static_string.ref.boost__static_strings__basic_static_string.empty `empty()`]
2320
2321[endsect]
2322
2323[section:overload2 basic_static_string::back (2 of 2 overloads)]
2324
2325Return the last character.
2326[heading Synopsis]
2327```
2328constexpr const_reference
2329back() const;
2330```
2331
2332[heading Description]
2333Returns a reference to the last character.
2334
2335[heading Complexity]
2336
2337Constant.
2338
2339[heading Precondition]
2340
2341not [link static_string.ref.boost__static_strings__basic_static_string.empty `empty()`]
2342
2343[endsect]
2344
2345
2346[endsect]
2347
2348[section:data basic_static_string::data]
2349[indexterm2 data..basic_static_string]
2350
2351
2352Return a pointer to the string.
2353```
2354constexpr pointer
2355``[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 data]``();
2356  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `more...`]]``
2357
2358constexpr const_pointer
2359``[link static_string.ref.boost__static_strings__basic_static_string.data.overload2 data]``() const;
2360  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.data.overload2 `more...`]]``
2361```
2362
2363[section:overload1 basic_static_string::data (1 of 2 overloads)]
2364
2365Return a pointer to the string.
2366[heading Synopsis]
2367```
2368constexpr pointer
2369data();
2370```
2371
2372[heading Description]
2373Returns a pointer to the underlying array serving as storage. The value returned is such that the range {[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]) is always a valid range, even if the container is empty.
2374
2375[heading Complexity]
2376
2377Constant.
2378
2379[heading Remarks]
2380The value returned from this function is never never a null pointer value.
2381
2382[endsect]
2383
2384[section:overload2 basic_static_string::data (2 of 2 overloads)]
2385
2386Return a pointer to the string.
2387[heading Synopsis]
2388```
2389constexpr const_pointer
2390data() const;
2391```
2392
2393[heading Description]
2394Returns a pointer to the underlying array serving as storage. The value returned is such that the range {[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]) is always a valid range, even if the container is empty.
2395
2396[heading Complexity]
2397
2398Constant.
2399
2400[heading Remarks]
2401The value returned from this function is never never a null pointer value.
2402
2403[endsect]
2404
2405
2406[endsect]
2407
2408[section:c_str basic_static_string::c_str]
2409[indexterm2 c_str..basic_static_string]
2410
2411
2412Return a pointer to the string.
2413[heading Synopsis]
2414```
2415constexpr const_pointer
2416c_str() const;
2417```
2418
2419[heading Description]
2420Returns a pointer to the underlying array serving as storage. The value returned is such that the range {[link static_string.ref.boost__static_strings__basic_static_string.c_str `c_str()`], [link static_string.ref.boost__static_strings__basic_static_string.c_str `c_str()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]) is always a valid range, even if the container is empty.
2421
2422[heading Complexity]
2423
2424Constant.
2425
2426[heading Remarks]
2427The value returned from this function is never never a null pointer value.
2428
2429[endsect]
2430
2431[section:operator_string_view_type basic_static_string::operator string_view_type]
2432[indexterm2 operator string_view_type..basic_static_string]
2433
2434
2435Convert to a string view referring to the string.
2436[heading Synopsis]
2437```
2438constexpr
2439operator string_view_type() const;
2440```
2441
2442[heading Description]
2443Returns a string view referring to the underlying character string.
2444
2445[heading Complexity]
2446
2447Constant.
2448
2449[endsect]
2450
2451[section:begin basic_static_string::begin]
2452[indexterm2 begin..basic_static_string]
2453
2454
2455Return an iterator to the beginning.
2456```
2457constexpr iterator
2458``[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 begin]``();
2459  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `more...`]]``
2460
2461constexpr const_iterator
2462``[link static_string.ref.boost__static_strings__basic_static_string.begin.overload2 begin]``() const;
2463  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.begin.overload2 `more...`]]``
2464```
2465
2466[section:overload1 basic_static_string::begin (1 of 2 overloads)]
2467
2468Return an iterator to the beginning.
2469[heading Synopsis]
2470```
2471constexpr iterator
2472begin();
2473```
2474
2475[heading Description]
2476
2477[endsect]
2478
2479[section:overload2 basic_static_string::begin (2 of 2 overloads)]
2480
2481Return an iterator to the beginning.
2482[heading Synopsis]
2483```
2484constexpr const_iterator
2485begin() const;
2486```
2487
2488[heading Description]
2489
2490[endsect]
2491
2492
2493[endsect]
2494
2495[section:cbegin basic_static_string::cbegin]
2496[indexterm2 cbegin..basic_static_string]
2497
2498
2499Return an iterator to the beginning.
2500[heading Synopsis]
2501```
2502constexpr const_iterator
2503cbegin() const;
2504```
2505
2506[heading Description]
2507
2508[endsect]
2509
2510[section:end basic_static_string::end]
2511[indexterm2 end..basic_static_string]
2512
2513
2514Return an iterator to the end.
2515```
2516constexpr iterator
2517``[link static_string.ref.boost__static_strings__basic_static_string.end.overload1 end]``();
2518  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `more...`]]``
2519
2520constexpr const_iterator
2521``[link static_string.ref.boost__static_strings__basic_static_string.end.overload2 end]``() const;
2522  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.end.overload2 `more...`]]``
2523```
2524
2525[section:overload1 basic_static_string::end (1 of 2 overloads)]
2526
2527Return an iterator to the end.
2528[heading Synopsis]
2529```
2530constexpr iterator
2531end();
2532```
2533
2534[heading Description]
2535
2536[endsect]
2537
2538[section:overload2 basic_static_string::end (2 of 2 overloads)]
2539
2540Return an iterator to the end.
2541[heading Synopsis]
2542```
2543constexpr const_iterator
2544end() const;
2545```
2546
2547[heading Description]
2548
2549[endsect]
2550
2551
2552[endsect]
2553
2554[section:cend basic_static_string::cend]
2555[indexterm2 cend..basic_static_string]
2556
2557
2558Return an iterator to the end.
2559[heading Synopsis]
2560```
2561constexpr const_iterator
2562cend() const;
2563```
2564
2565[heading Description]
2566
2567[endsect]
2568
2569[section:rbegin basic_static_string::rbegin]
2570[indexterm2 rbegin..basic_static_string]
2571
2572
2573Return a reverse iterator to the beginning.
2574```
2575constexpr reverse_iterator
2576``[link static_string.ref.boost__static_strings__basic_static_string.rbegin.overload1 rbegin]``();
2577  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rbegin.overload1 `more...`]]``
2578
2579constexpr const_reverse_iterator
2580``[link static_string.ref.boost__static_strings__basic_static_string.rbegin.overload2 rbegin]``() const;
2581  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rbegin.overload2 `more...`]]``
2582```
2583
2584[section:overload1 basic_static_string::rbegin (1 of 2 overloads)]
2585
2586Return a reverse iterator to the beginning.
2587[heading Synopsis]
2588```
2589constexpr reverse_iterator
2590rbegin();
2591```
2592
2593[heading Description]
2594
2595[endsect]
2596
2597[section:overload2 basic_static_string::rbegin (2 of 2 overloads)]
2598
2599Return a reverse iterator to the beginning.
2600[heading Synopsis]
2601```
2602constexpr const_reverse_iterator
2603rbegin() const;
2604```
2605
2606[heading Description]
2607
2608[endsect]
2609
2610
2611[endsect]
2612
2613[section:crbegin basic_static_string::crbegin]
2614[indexterm2 crbegin..basic_static_string]
2615
2616
2617Return a reverse iterator to the beginning.
2618[heading Synopsis]
2619```
2620constexpr const_reverse_iterator
2621crbegin() const;
2622```
2623
2624[heading Description]
2625
2626[endsect]
2627
2628[section:rend basic_static_string::rend]
2629[indexterm2 rend..basic_static_string]
2630
2631
2632Return a reverse iterator to the end.
2633```
2634constexpr reverse_iterator
2635``[link static_string.ref.boost__static_strings__basic_static_string.rend.overload1 rend]``();
2636  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rend.overload1 `more...`]]``
2637
2638constexpr const_reverse_iterator
2639``[link static_string.ref.boost__static_strings__basic_static_string.rend.overload2 rend]``() const;
2640  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rend.overload2 `more...`]]``
2641```
2642
2643[section:overload1 basic_static_string::rend (1 of 2 overloads)]
2644
2645Return a reverse iterator to the end.
2646[heading Synopsis]
2647```
2648constexpr reverse_iterator
2649rend();
2650```
2651
2652[heading Description]
2653
2654[endsect]
2655
2656[section:overload2 basic_static_string::rend (2 of 2 overloads)]
2657
2658Return a reverse iterator to the end.
2659[heading Synopsis]
2660```
2661constexpr const_reverse_iterator
2662rend() const;
2663```
2664
2665[heading Description]
2666
2667[endsect]
2668
2669
2670[endsect]
2671
2672[section:crend basic_static_string::crend]
2673[indexterm2 crend..basic_static_string]
2674
2675
2676Return a reverse iterator to the end.
2677[heading Synopsis]
2678```
2679constexpr const_reverse_iterator
2680crend() const;
2681```
2682
2683[heading Description]
2684
2685[endsect]
2686
2687[section:empty basic_static_string::empty]
2688[indexterm2 empty..basic_static_string]
2689
2690
2691Return if the string is empty.
2692[heading Synopsis]
2693```
2694BOOST_STATIC_STRING_NODISCARD constexpr bool
2695empty() const;
2696```
2697
2698[heading Description]
2699Returns whether the string contains no characters.
2700
2701[heading Complexity]
2702
2703Constant.
2704
2705[heading Return Value]
2706[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] == 0
2707
2708[endsect]
2709
2710[section:size basic_static_string::size]
2711[indexterm2 size..basic_static_string]
2712
2713
2714Return the size of the string.
2715[heading Synopsis]
2716```
2717constexpr size_type
2718size() const;
2719```
2720
2721[heading Description]
2722Returns the number of characters stored in the string, excluding the null terminator.
2723
2724[heading Complexity]
2725
2726Constant.
2727
2728[endsect]
2729
2730[section:length basic_static_string::length]
2731[indexterm2 length..basic_static_string]
2732
2733
2734Return the size of the string.
2735[heading Synopsis]
2736```
2737constexpr size_type
2738length() const;
2739```
2740
2741[heading Description]
2742Returns the number of characters stored in the string, excluding the null terminator.
2743
2744[heading Complexity]
2745
2746Constant.
2747
2748[endsect]
2749
2750[section:max_size basic_static_string::max_size]
2751[indexterm2 max_size..basic_static_string]
2752
2753
2754Return the number of characters that can be stored.
2755[heading Synopsis]
2756```
2757constexpr size_type
2758max_size() const;
2759```
2760
2761[heading Description]
2762Returns the maximum size of the string, excluding the null terminator. The returned value is always `N`.
2763
2764[heading Complexity]
2765
2766Constant.
2767
2768[endsect]
2769
2770[section:reserve basic_static_string::reserve]
2771[indexterm2 reserve..basic_static_string]
2772
2773
2774Increase the capacity.
2775[heading Synopsis]
2776```
2777constexpr void
2778reserve(
2779    size_type n);
2780```
2781
2782[heading Description]
2783This function has no effect.
2784
2785[heading Exceptions]
2786[table [[Type][Thrown On]]
2787  [
2788    [`std::length_error`
2789    ]
2790    [
2791n > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
2792    ]
2793  ]
2794]
2795
2796[endsect]
2797
2798[section:capacity basic_static_string::capacity]
2799[indexterm2 capacity..basic_static_string]
2800
2801
2802Return the number of characters that can be stored.
2803[heading Synopsis]
2804```
2805constexpr size_type
2806capacity() const;
2807```
2808
2809[heading Description]
2810Returns the maximum size of the string, excluding the null terminator. The returned value is always `N`.
2811
2812[heading Complexity]
2813
2814Constant.
2815
2816[endsect]
2817
2818[section:shrink_to_fit basic_static_string::shrink_to_fit]
2819[indexterm2 shrink_to_fit..basic_static_string]
2820
2821
2822Request the removal of unused capacity.
2823[heading Synopsis]
2824```
2825constexpr void
2826shrink_to_fit();
2827```
2828
2829[heading Description]
2830This function has no effect.
2831
2832[endsect]
2833
2834[section:clear basic_static_string::clear]
2835[indexterm2 clear..basic_static_string]
2836
2837
2838Clear the contents.
2839[heading Synopsis]
2840```
2841constexpr void
2842clear();
2843```
2844
2845[heading Description]
2846Erases all characters from the string. After this call, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] returns zero.
2847
2848[heading Complexity]
2849
2850Linear in [link static_string.ref.boost__static_strings__basic_static_string.size `size()`].
2851
2852[heading Remarks]
2853All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
2854
2855[endsect]
2856
2857[section:insert basic_static_string::insert]
2858[indexterm2 insert..basic_static_string]
2859
2860
2861Insert into the string.
2862```
2863constexpr basic_static_string&
2864``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload1 insert]``(
2865    size_type index,
2866    size_type count,
2867    value_type ch);
2868  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload1 `more...`]]``
2869
2870constexpr basic_static_string&
2871``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload2 insert]``(
2872    size_type index,
2873    const_pointer s);
2874  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload2 `more...`]]``
2875
2876constexpr basic_static_string&
2877``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload3 insert]``(
2878    size_type index,
2879    const_pointer s,
2880    size_type count);
2881  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload3 `more...`]]``
2882
2883template<
2884    std::size_t M>
2885constexpr basic_static_string&
2886``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload4 insert]``(
2887    size_type index,
2888    const basic_static_string< M, CharT, Traits >& str);
2889  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload4 `more...`]]``
2890
2891template<
2892    std::size_t M>
2893constexpr basic_static_string&
2894``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload5 insert]``(
2895    size_type index,
2896    const basic_static_string< M, CharT, Traits >& str,
2897    size_type index_str,
2898    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
2899  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload5 `more...`]]``
2900
2901constexpr iterator
2902``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload6 insert]``(
2903    const_iterator pos,
2904    value_type ch);
2905  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload6 `more...`]]``
2906
2907constexpr iterator
2908``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload7 insert]``(
2909    const_iterator pos,
2910    size_type count,
2911    value_type ch);
2912  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload7 `more...`]]``
2913
2914template<
2915    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
2916constexpr iterator
2917``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload8 insert]``(
2918    const_iterator pos,
2919    InputIterator first,
2920    InputIterator last);
2921  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload8 `more...`]]``
2922
2923constexpr iterator
2924``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload9 insert]``(
2925    const_iterator pos,
2926    std::initializer_list< value_type > ilist);
2927  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload9 `more...`]]``
2928
2929template<
2930    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
2931constexpr basic_static_string&
2932``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload10 insert]``(
2933    size_type index,
2934    const T& t);
2935  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload10 `more...`]]``
2936
2937template<
2938    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
2939constexpr basic_static_string&
2940``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload11 insert]``(
2941    size_type index,
2942    const T& t,
2943    size_type index_str,
2944    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
2945  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload11 `more...`]]``
2946```
2947
2948[section:overload1 basic_static_string::insert (1 of 11 overloads)]
2949
2950Insert into the string.
2951[heading Synopsis]
2952```
2953constexpr basic_static_string&
2954insert(
2955    size_type index,
2956    size_type count,
2957    value_type ch);
2958```
2959
2960[heading Description]
2961Inserts `count` copies of `ch` at the position `index`.
2962
2963[heading Exception Safety]
2964
2965Strong guarantee.
2966
2967[heading Remarks]
2968All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
2969[heading Return Value]
2970`*this`
2971[heading Parameters]
2972[table [[Name][Description]]
2973  [
2974    [`index`
2975    ]
2976    [
2977The index to insert at.
2978    ]
2979  ]
2980  [
2981    [`count`
2982    ]
2983    [
2984The number of characters to insert.
2985    ]
2986  ]
2987  [
2988    [`ch`
2989    ]
2990    [
2991The character to insert.
2992    ]
2993  ]
2994]
2995[heading Exceptions]
2996[table [[Type][Thrown On]]
2997  [
2998    [`std::length_error`
2999    ]
3000    [
3001[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3002    ]
3003  ]
3004  [
3005    [`std::out_of_range`
3006    ]
3007    [
3008index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
3009    ]
3010  ]
3011]
3012
3013[endsect]
3014
3015[section:overload2 basic_static_string::insert (2 of 11 overloads)]
3016
3017Insert into the string.
3018[heading Synopsis]
3019```
3020constexpr basic_static_string&
3021insert(
3022    size_type index,
3023    const_pointer s);
3024```
3025
3026[heading Description]
3027Inserts the null-terminated character string pointed to by `s` of length `count` at the position `index` where `count` is `traits_type::length(s)`.
3028
3029[heading Exception Safety]
3030
3031Strong guarantee.
3032
3033[heading Remarks]
3034All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3035[heading Return Value]
3036`*this`
3037[heading Parameters]
3038[table [[Name][Description]]
3039  [
3040    [`index`
3041    ]
3042    [
3043The index to insert at.
3044    ]
3045  ]
3046  [
3047    [`s`
3048    ]
3049    [
3050The string to insert.
3051    ]
3052  ]
3053]
3054[heading Exceptions]
3055[table [[Type][Thrown On]]
3056  [
3057    [`std::length_error`
3058    ]
3059    [
3060[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3061    ]
3062  ]
3063  [
3064    [`std::out_of_range`
3065    ]
3066    [
3067index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
3068    ]
3069  ]
3070]
3071
3072[endsect]
3073
3074[section:overload3 basic_static_string::insert (3 of 11 overloads)]
3075
3076Insert into the string.
3077[heading Synopsis]
3078```
3079constexpr basic_static_string&
3080insert(
3081    size_type index,
3082    const_pointer s,
3083    size_type count);
3084```
3085
3086[heading Description]
3087Inserts `count` characters of the string pointed to by `s` at the position `index`.
3088
3089[heading Exception Safety]
3090
3091Strong guarantee.
3092
3093[heading Remarks]
3094All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3095[heading Return Value]
3096`*this`
3097[heading Parameters]
3098[table [[Name][Description]]
3099  [
3100    [`index`
3101    ]
3102    [
3103The index to insert at.
3104    ]
3105  ]
3106  [
3107    [`s`
3108    ]
3109    [
3110The string to insert.
3111    ]
3112  ]
3113  [
3114    [`count`
3115    ]
3116    [
3117The length of the string to insert.
3118    ]
3119  ]
3120]
3121[heading Exceptions]
3122[table [[Type][Thrown On]]
3123  [
3124    [`std::length_error`
3125    ]
3126    [
3127[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3128    ]
3129  ]
3130  [
3131    [`std::out_of_range`
3132    ]
3133    [
3134index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
3135    ]
3136  ]
3137]
3138
3139[endsect]
3140
3141[section:overload4 basic_static_string::insert (4 of 11 overloads)]
3142
3143Insert into the string.
3144[heading Synopsis]
3145```
3146template<
3147    std::size_t M>
3148constexpr basic_static_string&
3149insert(
3150    size_type index,
3151    const basic_static_string< M, CharT, Traits >& str);
3152```
3153
3154[heading Description]
3155Inserts the string `str` at the position `index`.
3156
3157[heading Exception Safety]
3158
3159Strong guarantee.
3160
3161[heading Remarks]
3162The insertion is done unchecked when the capacity of `str` differs from that of the string the function is called on.
3163[heading Remarks]
3164All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3165[heading Template Parameters]
3166[table [[Type][Description]]
3167  [
3168    [`M`
3169    ]
3170    [
3171The size of the input string.
3172    ]
3173  ]
3174]
3175[heading Return Value]
3176`*this`
3177[heading Parameters]
3178[table [[Name][Description]]
3179  [
3180    [`index`
3181    ]
3182    [
3183The index to insert at.
3184    ]
3185  ]
3186  [
3187    [`str`
3188    ]
3189    [
3190The string to insert.
3191    ]
3192  ]
3193]
3194[heading Exceptions]
3195[table [[Type][Thrown On]]
3196  [
3197    [`std::length_error`
3198    ]
3199    [
3200[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + str.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3201    ]
3202  ]
3203  [
3204    [`std::out_of_range`
3205    ]
3206    [
3207index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
3208    ]
3209  ]
3210]
3211
3212[endsect]
3213
3214[section:overload5 basic_static_string::insert (5 of 11 overloads)]
3215
3216Insert into the string.
3217[heading Synopsis]
3218```
3219template<
3220    std::size_t M>
3221constexpr basic_static_string&
3222insert(
3223    size_type index,
3224    const basic_static_string< M, CharT, Traits >& str,
3225    size_type index_str,
3226    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
3227```
3228
3229[heading Description]
3230Inserts a string, obtained by `str.substr(index_str, count)` at the position `index`.
3231
3232[heading Exception Safety]
3233
3234Strong guarantee.
3235
3236[heading Remarks]
3237The insertion is done unchecked when the capacity of `str` differs from that of the string the function is called on.
3238[heading Remarks]
3239All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3240[heading Template Parameters]
3241[table [[Type][Description]]
3242  [
3243    [`M`
3244    ]
3245    [
3246The size of the input string.
3247    ]
3248  ]
3249]
3250[heading Return Value]
3251`*this`
3252[heading Parameters]
3253[table [[Name][Description]]
3254  [
3255    [`index`
3256    ]
3257    [
3258The index to insert at.
3259    ]
3260  ]
3261  [
3262    [`str`
3263    ]
3264    [
3265The string from which to insert.
3266    ]
3267  ]
3268  [
3269    [`index_str`
3270    ]
3271    [
3272The index in `str` to start inserting from.
3273    ]
3274  ]
3275  [
3276    [`count`
3277    ]
3278    [
3279The number of characters to insert. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
3280    ]
3281  ]
3282]
3283[heading Exceptions]
3284[table [[Type][Thrown On]]
3285  [
3286    [`std::length_error`
3287    ]
3288    [
3289[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + str.substr(index_str, count).[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3290    ]
3291  ]
3292  [
3293    [`std::out_of_range`
3294    ]
3295    [
3296index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
3297    ]
3298  ]
3299  [
3300    [`std::out_of_range`
3301    ]
3302    [
3303`index_str > str.size()`
3304    ]
3305  ]
3306]
3307
3308[endsect]
3309
3310[section:overload6 basic_static_string::insert (6 of 11 overloads)]
3311
3312Insert into the string.
3313[heading Synopsis]
3314```
3315constexpr iterator
3316insert(
3317    const_iterator pos,
3318    value_type ch);
3319```
3320
3321[heading Description]
3322Inserts the character `ch` before the character pointed by `pos`.
3323
3324[heading Precondition]
3325
3326`pos`shall be vaild within {[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
3327
3328[heading Exception Safety]
3329
3330Strong guarantee.
3331
3332[heading Remarks]
3333All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3334[heading Return Value]
3335An iterator which refers to the first inserted character or `pos` if no characters were inserted
3336[heading Parameters]
3337[table [[Name][Description]]
3338  [
3339    [`pos`
3340    ]
3341    [
3342The index to insert at.
3343    ]
3344  ]
3345  [
3346    [`ch`
3347    ]
3348    [
3349The character to insert.
3350    ]
3351  ]
3352]
3353[heading Exceptions]
3354[table [[Type][Thrown On]]
3355  [
3356    [`std::length_error`
3357    ]
3358    [
3359[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + 1 > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3360    ]
3361  ]
3362]
3363
3364[endsect]
3365
3366[section:overload7 basic_static_string::insert (7 of 11 overloads)]
3367
3368Insert into the string.
3369[heading Synopsis]
3370```
3371constexpr iterator
3372insert(
3373    const_iterator pos,
3374    size_type count,
3375    value_type ch);
3376```
3377
3378[heading Description]
3379Inserts `count` copies of `ch` before the character pointed by `pos`.
3380
3381[heading Precondition]
3382
3383`pos`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
3384
3385[heading Exception Safety]
3386
3387Strong guarantee.
3388
3389[heading Remarks]
3390All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3391[heading Return Value]
3392An iterator which refers to the first inserted character or `pos` if no characters were inserted
3393[heading Parameters]
3394[table [[Name][Description]]
3395  [
3396    [`pos`
3397    ]
3398    [
3399The position to insert at.
3400    ]
3401  ]
3402  [
3403    [`count`
3404    ]
3405    [
3406The number of characters to insert.
3407    ]
3408  ]
3409  [
3410    [`ch`
3411    ]
3412    [
3413The character to insert.
3414    ]
3415  ]
3416]
3417[heading Exceptions]
3418[table [[Type][Thrown On]]
3419  [
3420    [`std::length_error`
3421    ]
3422    [
3423[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3424    ]
3425  ]
3426]
3427
3428[endsect]
3429
3430[section:overload8 basic_static_string::insert (8 of 11 overloads)]
3431
3432Insert into the string.
3433[heading Synopsis]
3434```
3435template<
3436    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
3437constexpr iterator
3438insert(
3439    const_iterator pos,
3440    InputIterator first,
3441    InputIterator last);
3442```
3443
3444[heading Description]
3445Inserts characters from the range `{first, last)` before the character pointed to by `pos`.
3446
3447[heading Precondition]
3448
3449`pos`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]},
3450`{first, last)` shall be a valid range
3451
3452[heading Exception Safety]
3453
3454Strong guarantee.
3455
3456[heading Remarks]
3457All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3458[heading Template Parameters]
3459[table [[Type][Description]]
3460  [
3461    [`InputIterator`
3462    ]
3463    [
3464The type of the iterators.
3465    ]
3466  ]
3467]
3468[heading Constraints]
3469
3470`InputIterator`satisfies [*InputIterator] and does not satisfy [*ForwardIterator].
3471
3472[heading Return Value]
3473An iterator which refers to the first inserted character or `pos` if no characters were inserted
3474[heading Parameters]
3475[table [[Name][Description]]
3476  [
3477    [`pos`
3478    ]
3479    [
3480The position to insert at.
3481    ]
3482  ]
3483  [
3484    [`first`
3485    ]
3486    [
3487An iterator representing the first character to insert.
3488    ]
3489  ]
3490  [
3491    [`last`
3492    ]
3493    [
3494An iterator representing one past the last character to insert.
3495    ]
3496  ]
3497]
3498[heading Exceptions]
3499[table [[Type][Thrown On]]
3500  [
3501    [`std::length_error`
3502    ]
3503    [
3504[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + insert_count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3505    ]
3506  ]
3507]
3508
3509[endsect]
3510
3511[section:overload9 basic_static_string::insert (9 of 11 overloads)]
3512
3513Insert into the string.
3514[heading Synopsis]
3515```
3516constexpr iterator
3517insert(
3518    const_iterator pos,
3519    std::initializer_list< value_type > ilist);
3520```
3521
3522[heading Description]
3523Inserts characters from `ilist` before `pos`.
3524
3525[heading Precondition]
3526
3527`pos`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
3528
3529[heading Exception Safety]
3530
3531Strong guarantee.
3532
3533[heading Remarks]
3534All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3535[heading Return Value]
3536An iterator which refers to the first inserted character or `pos` if no characters were inserted
3537[heading Parameters]
3538[table [[Name][Description]]
3539  [
3540    [`pos`
3541    ]
3542    [
3543The position to insert at.
3544    ]
3545  ]
3546  [
3547    [`ilist`
3548    ]
3549    [
3550The initializer list from which to insert.
3551    ]
3552  ]
3553]
3554[heading Exceptions]
3555[table [[Type][Thrown On]]
3556  [
3557    [`std::length_error`
3558    ]
3559    [
3560[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + ilist.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3561    ]
3562  ]
3563]
3564
3565[endsect]
3566
3567[section:overload10 basic_static_string::insert (10 of 11 overloads)]
3568
3569Insert into the string.
3570[heading Synopsis]
3571```
3572template<
3573    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
3574constexpr basic_static_string&
3575insert(
3576    size_type index,
3577    const T& t);
3578```
3579
3580[heading Description]
3581Constructs a temporary `string_view_type` object `sv` from `t` and inserts `{sv.begin(), sv.end())` at `index`.
3582
3583[heading Precondition]
3584
3585`index`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
3586
3587[heading Exception Safety]
3588
3589Strong guarantee.
3590
3591[heading Remarks]
3592All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3593[heading Return Value]
3594`*this`
3595[heading Template Parameters]
3596[table [[Type][Description]]
3597  [
3598    [`T`
3599    ]
3600    [
3601The type of the object to convert.
3602    ]
3603  ]
3604]
3605[heading Constraints]
3606
3607`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
3608
3609[heading Parameters]
3610[table [[Name][Description]]
3611  [
3612    [`index`
3613    ]
3614    [
3615The index to insert at.
3616    ]
3617  ]
3618  [
3619    [`t`
3620    ]
3621    [
3622The string to insert from.
3623    ]
3624  ]
3625]
3626[heading Exceptions]
3627[table [[Type][Thrown On]]
3628  [
3629    [`std::length_error`
3630    ]
3631    [
3632[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3633    ]
3634  ]
3635  [
3636    [`std::out_of_range`
3637    ]
3638    [
3639index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
3640    ]
3641  ]
3642]
3643
3644[endsect]
3645
3646[section:overload11 basic_static_string::insert (11 of 11 overloads)]
3647
3648Insert into the string.
3649[heading Synopsis]
3650```
3651template<
3652    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
3653constexpr basic_static_string&
3654insert(
3655    size_type index,
3656    const T& t,
3657    size_type index_str,
3658    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
3659```
3660
3661[heading Description]
3662Constructs a temporary `string_view_type` object `sv` from `t` and inserts `sv.substr(index_str, count)` at `index`.
3663
3664[heading Exception Safety]
3665
3666Strong guarantee.
3667
3668[heading Remarks]
3669All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3670[heading Template Parameters]
3671[table [[Type][Description]]
3672  [
3673    [`T`
3674    ]
3675    [
3676The type of the object to convert.
3677    ]
3678  ]
3679]
3680[heading Constraints]
3681
3682`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const_pointer>::value`.
3683
3684[heading Return Value]
3685`*this`
3686[heading Parameters]
3687[table [[Name][Description]]
3688  [
3689    [`index`
3690    ]
3691    [
3692The index to insert at.
3693    ]
3694  ]
3695  [
3696    [`t`
3697    ]
3698    [
3699The string to insert from.
3700    ]
3701  ]
3702  [
3703    [`index_str`
3704    ]
3705    [
3706The index in the temporary `string_view_type` object to start the substring from.
3707    ]
3708  ]
3709  [
3710    [`count`
3711    ]
3712    [
3713The number of characters to insert.
3714    ]
3715  ]
3716]
3717[heading Exceptions]
3718[table [[Type][Thrown On]]
3719  [
3720    [`std::length_error`
3721    ]
3722    [
3723[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3724    ]
3725  ]
3726  [
3727    [`std::out_of_range`
3728    ]
3729    [
3730index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
3731    ]
3732  ]
3733  [
3734    [`std::out_of_range`
3735    ]
3736    [
3737`index_str > sv.size()`
3738    ]
3739  ]
3740]
3741
3742[endsect]
3743
3744
3745[endsect]
3746
3747[section:erase basic_static_string::erase]
3748[indexterm2 erase..basic_static_string]
3749
3750
3751Erase from the string.
3752```
3753constexpr basic_static_string&
3754``[link static_string.ref.boost__static_strings__basic_static_string.erase.overload1 erase]``(
3755    size_type index = 0,
3756    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
3757  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.erase.overload1 `more...`]]``
3758
3759constexpr iterator
3760``[link static_string.ref.boost__static_strings__basic_static_string.erase.overload2 erase]``(
3761    const_iterator pos);
3762  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.erase.overload2 `more...`]]``
3763
3764constexpr iterator
3765``[link static_string.ref.boost__static_strings__basic_static_string.erase.overload3 erase]``(
3766    const_iterator first,
3767    const_iterator last);
3768  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.erase.overload3 `more...`]]``
3769```
3770
3771[section:overload1 basic_static_string::erase (1 of 3 overloads)]
3772
3773Erase from the string.
3774[heading Synopsis]
3775```
3776constexpr basic_static_string&
3777erase(
3778    size_type index = 0,
3779    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
3780```
3781
3782[heading Description]
3783Erases `num` characters from the string, starting at `index`. `num` is determined as the smaller of `count` and [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - index.
3784
3785[heading Exception Safety]
3786
3787Strong guarantee.
3788
3789[heading Remarks]
3790All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3791[heading Return Value]
3792`*this`
3793[heading Parameters]
3794[table [[Name][Description]]
3795  [
3796    [`index`
3797    ]
3798    [
3799The index to erase at. The default argument for this parameter is `0`.
3800    ]
3801  ]
3802  [
3803    [`count`
3804    ]
3805    [
3806The number of characters to erase. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
3807    ]
3808  ]
3809]
3810[heading Exceptions]
3811[table [[Type][Thrown On]]
3812  [
3813    [`std::out_of_range`
3814    ]
3815    [
3816index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
3817    ]
3818  ]
3819]
3820
3821[endsect]
3822
3823[section:overload2 basic_static_string::erase (2 of 3 overloads)]
3824
3825Erase from the string.
3826[heading Synopsis]
3827```
3828constexpr iterator
3829erase(
3830    const_iterator pos);
3831```
3832
3833[heading Description]
3834Erases the character at `pos`.
3835
3836[heading Preconditions]
3837
3838`pos`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
3839
3840[heading Exception Safety]
3841
3842Strong guarantee.
3843
3844[heading Remarks]
3845All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3846[heading Return Value]
3847An iterator referring to character immediately following the erased character, or [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`] if one does not exist.
3848[heading Parameters]
3849[table [[Name][Description]]
3850  [
3851    [`pos`
3852    ]
3853    [
3854An iterator referring to the character to erase.
3855    ]
3856  ]
3857]
3858
3859[endsect]
3860
3861[section:overload3 basic_static_string::erase (3 of 3 overloads)]
3862
3863Erase from the string.
3864[heading Synopsis]
3865```
3866constexpr iterator
3867erase(
3868    const_iterator first,
3869    const_iterator last);
3870```
3871
3872[heading Description]
3873Erases the characters in the range `{first, last)`.
3874
3875[heading Precondition]
3876
3877`{first, last}`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
3878
3879[heading Exception Safety]
3880
3881Strong guarantee.
3882
3883[heading Remarks]
3884All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
3885[heading Return Value]
3886An iterator referring to the character `last` previously referred to, or [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`] if one does not exist.
3887[heading Parameters]
3888[table [[Name][Description]]
3889  [
3890    [`first`
3891    ]
3892    [
3893An iterator referring to the first character to erase.
3894    ]
3895  ]
3896  [
3897    [`last`
3898    ]
3899    [
3900An iterator past the last character to erase.
3901    ]
3902  ]
3903]
3904
3905[endsect]
3906
3907
3908[endsect]
3909
3910[section:push_back basic_static_string::push_back]
3911[indexterm2 push_back..basic_static_string]
3912
3913
3914Append a character.
3915[heading Synopsis]
3916```
3917constexpr void
3918push_back(
3919    value_type ch);
3920```
3921
3922[heading Description]
3923Appends a character to the end of the string.
3924
3925[heading Exception Safety]
3926
3927Strong guarantee.
3928
3929[heading Parameters]
3930[table [[Name][Description]]
3931  [
3932    [`ch`
3933    ]
3934    [
3935The character to append.
3936    ]
3937  ]
3938]
3939[heading Exceptions]
3940[table [[Type][Thrown On]]
3941  [
3942    [`std::length_error`
3943    ]
3944    [
3945[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] >= [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
3946    ]
3947  ]
3948]
3949
3950[endsect]
3951
3952[section:pop_back basic_static_string::pop_back]
3953[indexterm2 pop_back..basic_static_string]
3954
3955
3956Remove the last character.
3957[heading Synopsis]
3958```
3959constexpr void
3960pop_back();
3961```
3962
3963[heading Description]
3964Removes a character from the end of the string.
3965
3966[heading Precondition]
3967
3968not [link static_string.ref.boost__static_strings__basic_static_string.empty `empty()`]
3969
3970[endsect]
3971
3972[section:append basic_static_string::append]
3973[indexterm2 append..basic_static_string]
3974
3975
3976Append to the string.
3977```
3978constexpr basic_static_string&
3979``[link static_string.ref.boost__static_strings__basic_static_string.append.overload1 append]``(
3980    size_type count,
3981    value_type ch);
3982  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload1 `more...`]]``
3983
3984template<
3985    std::size_t M>
3986constexpr basic_static_string&
3987``[link static_string.ref.boost__static_strings__basic_static_string.append.overload2 append]``(
3988    const basic_static_string< M, CharT, Traits >& s);
3989  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload2 `more...`]]``
3990
3991template<
3992    std::size_t M>
3993constexpr basic_static_string&
3994``[link static_string.ref.boost__static_strings__basic_static_string.append.overload3 append]``(
3995    const basic_static_string< M, CharT, Traits >& s,
3996    size_type pos,
3997    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
3998  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload3 `more...`]]``
3999
4000constexpr basic_static_string&
4001``[link static_string.ref.boost__static_strings__basic_static_string.append.overload4 append]``(
4002    const_pointer s,
4003    size_type count);
4004  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload4 `more...`]]``
4005
4006constexpr basic_static_string&
4007``[link static_string.ref.boost__static_strings__basic_static_string.append.overload5 append]``(
4008    const_pointer s);
4009  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload5 `more...`]]``
4010
4011template<
4012    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
4013constexpr basic_static_string&
4014``[link static_string.ref.boost__static_strings__basic_static_string.append.overload6 append]``(
4015    InputIterator first,
4016    InputIterator last);
4017  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload6 `more...`]]``
4018
4019constexpr basic_static_string&
4020``[link static_string.ref.boost__static_strings__basic_static_string.append.overload7 append]``(
4021    std::initializer_list< value_type > ilist);
4022  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload7 `more...`]]``
4023
4024template<
4025    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
4026constexpr basic_static_string&
4027``[link static_string.ref.boost__static_strings__basic_static_string.append.overload8 append]``(
4028    const T& t);
4029  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload8 `more...`]]``
4030
4031template<
4032    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
4033constexpr basic_static_string&
4034``[link static_string.ref.boost__static_strings__basic_static_string.append.overload9 append]``(
4035    const T& t,
4036    size_type pos,
4037    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
4038  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload9 `more...`]]``
4039```
4040
4041[section:overload1 basic_static_string::append (1 of 9 overloads)]
4042
4043Append to the string.
4044[heading Synopsis]
4045```
4046constexpr basic_static_string&
4047append(
4048    size_type count,
4049    value_type ch);
4050```
4051
4052[heading Description]
4053Appends `count` copies of `ch` to the end of the string.
4054
4055[heading Exception Safety]
4056
4057Strong guarantee.
4058
4059[heading Return Value]
4060`*this`
4061[heading Parameters]
4062[table [[Name][Description]]
4063  [
4064    [`count`
4065    ]
4066    [
4067The number of characters to append.
4068    ]
4069  ]
4070  [
4071    [`ch`
4072    ]
4073    [
4074The character to append.
4075    ]
4076  ]
4077]
4078[heading Exceptions]
4079[table [[Type][Thrown On]]
4080  [
4081    [`std::length_error`
4082    ]
4083    [
4084[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4085    ]
4086  ]
4087]
4088
4089[endsect]
4090
4091[section:overload2 basic_static_string::append (2 of 9 overloads)]
4092
4093Append to the string.
4094[heading Synopsis]
4095```
4096template<
4097    std::size_t M>
4098constexpr basic_static_string&
4099append(
4100    const basic_static_string< M, CharT, Traits >& s);
4101```
4102
4103[heading Description]
4104Appends `s` to the end of the string.
4105
4106[heading Exception Safety]
4107
4108Strong guarantee.
4109
4110[heading Template Parameters]
4111[table [[Type][Description]]
4112  [
4113    [`M`
4114    ]
4115    [
4116The size of the string to append.
4117    ]
4118  ]
4119]
4120[heading Return Value]
4121`*this`
4122[heading Parameters]
4123[table [[Name][Description]]
4124  [
4125    [`s`
4126    ]
4127    [
4128The string to append.
4129    ]
4130  ]
4131]
4132[heading Exceptions]
4133[table [[Type][Thrown On]]
4134  [
4135    [`std::length_error`
4136    ]
4137    [
4138[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + s.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4139    ]
4140  ]
4141]
4142
4143[endsect]
4144
4145[section:overload3 basic_static_string::append (3 of 9 overloads)]
4146
4147Append to the string.
4148[heading Synopsis]
4149```
4150template<
4151    std::size_t M>
4152constexpr basic_static_string&
4153append(
4154    const basic_static_string< M, CharT, Traits >& s,
4155    size_type pos,
4156    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
4157```
4158
4159[heading Description]
4160Appends the substring `sub` to the end of the string, where `sub` is `s.substr(pos, count)`.
4161
4162[heading Exception Safety]
4163
4164Strong guarantee.
4165
4166[heading Template Parameters]
4167[table [[Type][Description]]
4168  [
4169    [`M`
4170    ]
4171    [
4172The size of the string to append.
4173    ]
4174  ]
4175]
4176[heading Return Value]
4177`*this`
4178[heading Parameters]
4179[table [[Name][Description]]
4180  [
4181    [`s`
4182    ]
4183    [
4184The string to append.
4185    ]
4186  ]
4187  [
4188    [`pos`
4189    ]
4190    [
4191The index at which to begin the substring.
4192    ]
4193  ]
4194  [
4195    [`count`
4196    ]
4197    [
4198The size of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
4199    ]
4200  ]
4201]
4202[heading Exceptions]
4203[table [[Type][Thrown On]]
4204  [
4205    [`std::length_error`
4206    ]
4207    [
4208[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sub.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4209    ]
4210  ]
4211  [
4212    [`std::out_of_range`
4213    ]
4214    [
4215`pos > s.size()`
4216    ]
4217  ]
4218]
4219
4220[endsect]
4221
4222[section:overload4 basic_static_string::append (4 of 9 overloads)]
4223
4224Append to the string.
4225[heading Synopsis]
4226```
4227constexpr basic_static_string&
4228append(
4229    const_pointer s,
4230    size_type count);
4231```
4232
4233[heading Description]
4234Appends `count` characters from the string pointed to by `s` to the end of the string.
4235
4236[heading Exception Safety]
4237
4238Strong guarantee.
4239
4240[heading Remarks]
4241The string can contain null characters.
4242[heading Return Value]
4243`*this`
4244[heading Parameters]
4245[table [[Name][Description]]
4246  [
4247    [`s`
4248    ]
4249    [
4250The string to append.
4251    ]
4252  ]
4253  [
4254    [`count`
4255    ]
4256    [
4257The number of characters to append.
4258    ]
4259  ]
4260]
4261[heading Exceptions]
4262[table [[Type][Thrown On]]
4263  [
4264    [`std::length_error`
4265    ]
4266    [
4267[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4268    ]
4269  ]
4270]
4271
4272[endsect]
4273
4274[section:overload5 basic_static_string::append (5 of 9 overloads)]
4275
4276Append to the string.
4277[heading Synopsis]
4278```
4279constexpr basic_static_string&
4280append(
4281    const_pointer s);
4282```
4283
4284[heading Description]
4285Appends `count` characters from the string pointed to by `s` to the end of the string, where `count` is `traits_type::length(s)`.
4286
4287[heading Exception Safety]
4288
4289Strong guarantee.
4290
4291[heading Return Value]
4292`*this`
4293[heading Parameters]
4294[table [[Name][Description]]
4295  [
4296    [`s`
4297    ]
4298    [
4299The string to append.
4300    ]
4301  ]
4302]
4303[heading Exceptions]
4304[table [[Type][Thrown On]]
4305  [
4306    [`std::length_error`
4307    ]
4308    [
4309[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4310    ]
4311  ]
4312]
4313
4314[endsect]
4315
4316[section:overload6 basic_static_string::append (6 of 9 overloads)]
4317
4318Append to the string.
4319[heading Synopsis]
4320```
4321template<
4322    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
4323constexpr basic_static_string&
4324append(
4325    InputIterator first,
4326    InputIterator last);
4327```
4328
4329[heading Description]
4330Appends characters from the range `{first, last)` to the end of the string.
4331
4332[heading Precondition]
4333
4334`{first, last)`shall be a valid range
4335
4336[heading Exception Safety]
4337
4338Strong guarantee.
4339
4340[heading Template Parameters]
4341[table [[Type][Description]]
4342  [
4343    [`InputIterator`
4344    ]
4345    [
4346The type of the iterators.
4347    ]
4348  ]
4349]
4350[heading Constraints]
4351
4352`InputIterator`satisfies [*InputIterator].
4353
4354[heading Return Value]
4355`*this`
4356[heading Parameters]
4357[table [[Name][Description]]
4358  [
4359    [`first`
4360    ]
4361    [
4362An iterator referring to the first character to append.
4363    ]
4364  ]
4365  [
4366    [`last`
4367    ]
4368    [
4369An iterator past the end of last character to append.
4370    ]
4371  ]
4372]
4373[heading Exceptions]
4374[table [[Type][Thrown On]]
4375  [
4376    [`std::length_error`
4377    ]
4378    [
4379[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + std::distance(first, last) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4380    ]
4381  ]
4382]
4383
4384[endsect]
4385
4386[section:overload7 basic_static_string::append (7 of 9 overloads)]
4387
4388Append to the string.
4389[heading Synopsis]
4390```
4391constexpr basic_static_string&
4392append(
4393    std::initializer_list< value_type > ilist);
4394```
4395
4396[heading Description]
4397Appends the characters from `ilist` to the end of the string.
4398
4399[heading Exception Safety]
4400
4401Strong guarantee.
4402
4403[heading Return Value]
4404`*this`
4405[heading Parameters]
4406[table [[Name][Description]]
4407  [
4408    [`ilist`
4409    ]
4410    [
4411The initializer list to append.
4412    ]
4413  ]
4414]
4415[heading Exceptions]
4416[table [[Type][Thrown On]]
4417  [
4418    [`std::length_error`
4419    ]
4420    [
4421[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + ilist.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4422    ]
4423  ]
4424]
4425
4426[endsect]
4427
4428[section:overload8 basic_static_string::append (8 of 9 overloads)]
4429
4430Append to the string.
4431[heading Synopsis]
4432```
4433template<
4434    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
4435constexpr basic_static_string&
4436append(
4437    const T& t);
4438```
4439
4440[heading Description]
4441Appends `sv` to the end of the string, where `sv` is `string_view_type(t)`.
4442
4443[heading Exception Safety]
4444
4445Strong guarantee.
4446
4447[heading Template Parameters]
4448[table [[Type][Description]]
4449  [
4450    [`T`
4451    ]
4452    [
4453The type of the object to convert.
4454    ]
4455  ]
4456]
4457[heading Constraints]
4458
4459```
4460std::is_convertible<T const&, string_view>::value &&
4461!std::is_convertible<T const&, char const*>::value
4462```
4463
4464
4465[heading Return Value]
4466`*this`
4467[heading Parameters]
4468[table [[Name][Description]]
4469  [
4470    [`t`
4471    ]
4472    [
4473The string to append.
4474    ]
4475  ]
4476]
4477[heading Exceptions]
4478[table [[Type][Thrown On]]
4479  [
4480    [`std::length_error`
4481    ]
4482    [
4483[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4484    ]
4485  ]
4486]
4487
4488[endsect]
4489
4490[section:overload9 basic_static_string::append (9 of 9 overloads)]
4491
4492Append to the string.
4493[heading Synopsis]
4494```
4495template<
4496    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
4497constexpr basic_static_string&
4498append(
4499    const T& t,
4500    size_type pos,
4501    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
4502```
4503
4504[heading Description]
4505Appends the substring `sv` to the end of the string, where `sv` is `string_view_type(t).substr(pos, count)`.
4506
4507[heading Exception Safety]
4508
4509Strong guarantee.
4510
4511[heading Template Parameters]
4512[table [[Type][Description]]
4513  [
4514    [`T`
4515    ]
4516    [
4517The type of the object to convert.
4518    ]
4519  ]
4520]
4521[heading Constraints]
4522
4523```
4524std::is_convertible<T const&, string_view>::value &&
4525!std::is_convertible<T const&, char const*>::value
4526```
4527
4528
4529[heading Return Value]
4530`*this`
4531[heading Parameters]
4532[table [[Name][Description]]
4533  [
4534    [`t`
4535    ]
4536    [
4537The object to append.
4538    ]
4539  ]
4540  [
4541    [`pos`
4542    ]
4543    [
4544The index at which to begin the substring.
4545    ]
4546  ]
4547  [
4548    [`count`
4549    ]
4550    [
4551The size of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
4552    ]
4553  ]
4554]
4555[heading Exceptions]
4556[table [[Type][Thrown On]]
4557  [
4558    [`std::length_error`
4559    ]
4560    [
4561[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4562    ]
4563  ]
4564]
4565
4566[endsect]
4567
4568
4569[endsect]
4570
4571[section:operator_plus__eq_ basic_static_string::operator+=]
4572[indexterm2 operator+=..basic_static_string]
4573
4574
4575Append to the string.
4576```
4577template<
4578    std::size_t M>
4579constexpr basic_static_string&
4580``[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload1 operator+=]``(
4581    const basic_static_string< M, CharT, Traits >& s);
4582  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload1 `more...`]]``
4583
4584constexpr basic_static_string&
4585``[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload2 operator+=]``(
4586    value_type ch);
4587  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload2 `more...`]]``
4588
4589constexpr basic_static_string&
4590``[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload3 operator+=]``(
4591    const_pointer s);
4592  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload3 `more...`]]``
4593
4594constexpr basic_static_string&
4595``[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload4 operator+=]``(
4596    std::initializer_list< value_type > ilist);
4597  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload4 `more...`]]``
4598
4599template<
4600    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
4601constexpr basic_static_string&
4602``[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload5 operator+=]``(
4603    const T& t);
4604  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload5 `more...`]]``
4605```
4606
4607[section:overload1 basic_static_string::operator+= (1 of 5 overloads)]
4608
4609Append to the string.
4610[heading Synopsis]
4611```
4612template<
4613    std::size_t M>
4614constexpr basic_static_string&
4615operator+=(
4616    const basic_static_string< M, CharT, Traits >& s);
4617```
4618
4619[heading Description]
4620Appends `s` to the end of the string.
4621
4622[heading Exception Safety]
4623
4624Strong guarantee.
4625
4626[heading Template Parameters]
4627[table [[Type][Description]]
4628  [
4629    [`M`
4630    ]
4631    [
4632The size of the string to append.
4633    ]
4634  ]
4635]
4636[heading Return Value]
4637`*this`
4638[heading Parameters]
4639[table [[Name][Description]]
4640  [
4641    [`s`
4642    ]
4643    [
4644The string to append.
4645    ]
4646  ]
4647]
4648[heading Exceptions]
4649[table [[Type][Thrown On]]
4650  [
4651    [`std::length_error`
4652    ]
4653    [
4654[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + s.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4655    ]
4656  ]
4657]
4658
4659[endsect]
4660
4661[section:overload2 basic_static_string::operator+= (2 of 5 overloads)]
4662
4663Append to the string.
4664[heading Synopsis]
4665```
4666constexpr basic_static_string&
4667operator+=(
4668    value_type ch);
4669```
4670
4671[heading Description]
4672Appends a character to the end of the string.
4673
4674[heading Exception Safety]
4675
4676Strong guarantee.
4677
4678[heading Parameters]
4679[table [[Name][Description]]
4680  [
4681    [`ch`
4682    ]
4683    [
4684The character to append.
4685    ]
4686  ]
4687]
4688[heading Exceptions]
4689[table [[Type][Thrown On]]
4690  [
4691    [`std::length_error`
4692    ]
4693    [
4694[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] >= [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4695    ]
4696  ]
4697]
4698
4699[endsect]
4700
4701[section:overload3 basic_static_string::operator+= (3 of 5 overloads)]
4702
4703Append to the string.
4704[heading Synopsis]
4705```
4706constexpr basic_static_string&
4707operator+=(
4708    const_pointer s);
4709```
4710
4711[heading Description]
4712Appends `count` characters from the string pointed to by `s` to the end of the string, where `count` is `traits_type::length(s)`.
4713
4714[heading Exception Safety]
4715
4716Strong guarantee.
4717
4718[heading Return Value]
4719`*this`
4720[heading Parameters]
4721[table [[Name][Description]]
4722  [
4723    [`s`
4724    ]
4725    [
4726The string to append.
4727    ]
4728  ]
4729]
4730[heading Exceptions]
4731[table [[Type][Thrown On]]
4732  [
4733    [`std::length_error`
4734    ]
4735    [
4736[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4737    ]
4738  ]
4739]
4740
4741[endsect]
4742
4743[section:overload4 basic_static_string::operator+= (4 of 5 overloads)]
4744
4745Append to the string.
4746[heading Synopsis]
4747```
4748constexpr basic_static_string&
4749operator+=(
4750    std::initializer_list< value_type > ilist);
4751```
4752
4753[heading Description]
4754Appends the characters from `ilist` to the end of the string.
4755
4756[heading Exception Safety]
4757
4758Strong guarantee.
4759
4760[heading Return Value]
4761`*this`
4762[heading Parameters]
4763[table [[Name][Description]]
4764  [
4765    [`ilist`
4766    ]
4767    [
4768The initializer list to append.
4769    ]
4770  ]
4771]
4772[heading Exceptions]
4773[table [[Type][Thrown On]]
4774  [
4775    [`std::length_error`
4776    ]
4777    [
4778[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + ilist.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4779    ]
4780  ]
4781]
4782
4783[endsect]
4784
4785[section:overload5 basic_static_string::operator+= (5 of 5 overloads)]
4786
4787Append to the string.
4788[heading Synopsis]
4789```
4790template<
4791    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
4792constexpr basic_static_string&
4793operator+=(
4794    const T& t);
4795```
4796
4797[heading Description]
4798Appends `sv` to the end of the string, where `sv` is `string_view_type(t)`.
4799
4800[heading Exception Safety]
4801
4802Strong guarantee.
4803
4804[heading Template Parameters]
4805[table [[Type][Description]]
4806  [
4807    [`T`
4808    ]
4809    [
4810The type of the object to convert.
4811    ]
4812  ]
4813]
4814[heading Constraints]
4815
4816```
4817std::is_convertible<T const&, string_view>::value &&
4818!std::is_convertible<T const&, char const*>::value
4819```
4820
4821
4822[heading Return Value]
4823`*this`
4824[heading Parameters]
4825[table [[Name][Description]]
4826  [
4827    [`t`
4828    ]
4829    [
4830The string to append.
4831    ]
4832  ]
4833]
4834[heading Exceptions]
4835[table [[Type][Thrown On]]
4836  [
4837    [`std::length_error`
4838    ]
4839    [
4840[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
4841    ]
4842  ]
4843]
4844
4845[endsect]
4846
4847
4848[endsect]
4849
4850[section:compare basic_static_string::compare]
4851[indexterm2 compare..basic_static_string]
4852
4853
4854Compare a string with the string.
4855```
4856template<
4857    std::size_t M>
4858constexpr int
4859``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload1 compare]``(
4860    const basic_static_string< M, CharT, Traits >& s) const;
4861  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload1 `more...`]]``
4862
4863template<
4864    std::size_t M>
4865constexpr int
4866``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload2 compare]``(
4867    size_type pos1,
4868    size_type count1,
4869    const basic_static_string< M, CharT, Traits >& s) const;
4870  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload2 `more...`]]``
4871
4872template<
4873    std::size_t M>
4874constexpr int
4875``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload3 compare]``(
4876    size_type pos1,
4877    size_type count1,
4878    const basic_static_string< M, CharT, Traits >& s,
4879    size_type pos2,
4880    size_type count2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
4881  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload3 `more...`]]``
4882
4883constexpr int
4884``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload4 compare]``(
4885    const_pointer s) const;
4886  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload4 `more...`]]``
4887
4888constexpr int
4889``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload5 compare]``(
4890    size_type pos1,
4891    size_type count1,
4892    const_pointer s) const;
4893  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload5 `more...`]]``
4894
4895constexpr int
4896``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload6 compare]``(
4897    size_type pos1,
4898    size_type count1,
4899    const_pointer s,
4900    size_type count2) const;
4901  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload6 `more...`]]``
4902
4903template<
4904    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
4905constexpr int
4906``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload7 compare]``(
4907    const T& t) const;
4908  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload7 `more...`]]``
4909
4910template<
4911    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
4912constexpr int
4913``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload8 compare]``(
4914    size_type pos1,
4915    size_type count1,
4916    const T& t) const;
4917  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload8 `more...`]]``
4918
4919template<
4920    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
4921constexpr int
4922``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload9 compare]``(
4923    size_type pos1,
4924    size_type count1,
4925    const T& t,
4926    size_type pos2,
4927    size_type count2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
4928  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload9 `more...`]]``
4929```
4930
4931[section:overload1 basic_static_string::compare (1 of 9 overloads)]
4932
4933Compare a string with the string.
4934[heading Synopsis]
4935```
4936template<
4937    std::size_t M>
4938constexpr int
4939compare(
4940    const basic_static_string< M, CharT, Traits >& s) const;
4941```
4942
4943[heading Description]
4944Let `comp` be traits_type::compare([link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], s.data(), std::min([link static_string.ref.boost__static_strings__basic_static_string.size `size()`], s.size()). If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] == s.size(), `-1` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] < s.size(), and `1` otherwise.
4945
4946[heading Complexity]
4947Linear.
4948[heading Return Value]
4949The result of lexicographically comparing `s` and the string.
4950[heading Template Parameters]
4951[table [[Type][Description]]
4952  [
4953    [`M`
4954    ]
4955    [
4956The size of the string to compare with.
4957    ]
4958  ]
4959]
4960[heading Parameters]
4961[table [[Name][Description]]
4962  [
4963    [`s`
4964    ]
4965    [
4966The string to compare.
4967    ]
4968  ]
4969]
4970
4971[endsect]
4972
4973[section:overload2 basic_static_string::compare (2 of 9 overloads)]
4974
4975Compare a string with the string.
4976[heading Synopsis]
4977```
4978template<
4979    std::size_t M>
4980constexpr int
4981compare(
4982    size_type pos1,
4983    size_type count1,
4984    const basic_static_string< M, CharT, Traits >& s) const;
4985```
4986
4987[heading Description]
4988Let `sub` be `substr(pos1, count1)` and `comp` be `traits_type::compare(sub.data(), s.data(), std::min(sub.size(), s.size())`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub.size() == s.size()`, `-1` if `sub.size() < s.size()`, and `1` otherwise.
4989
4990[heading Complexity]
4991
4992Linear.
4993
4994[heading Exception Safety]
4995
4996Strong guarantee.
4997
4998[heading Return Value]
4999The result of lexicographically comparing `sub` and `s`.
5000[heading Template Parameters]
5001[table [[Type][Description]]
5002  [
5003    [`M`
5004    ]
5005    [
5006The size of the string to compare with.
5007    ]
5008  ]
5009]
5010[heading Parameters]
5011[table [[Name][Description]]
5012  [
5013    [`pos1`
5014    ]
5015    [
5016The index at which to begin the substring.
5017    ]
5018  ]
5019  [
5020    [`count1`
5021    ]
5022    [
5023The size of the substring.
5024    ]
5025  ]
5026  [
5027    [`s`
5028    ]
5029    [
5030The string to compare.
5031    ]
5032  ]
5033]
5034[heading Exceptions]
5035[table [[Type][Thrown On]]
5036  [
5037    [`std::out_of_range`
5038    ]
5039    [
5040pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
5041    ]
5042  ]
5043]
5044
5045[endsect]
5046
5047[section:overload3 basic_static_string::compare (3 of 9 overloads)]
5048
5049Compare a string with the string.
5050[heading Synopsis]
5051```
5052template<
5053    std::size_t M>
5054constexpr int
5055compare(
5056    size_type pos1,
5057    size_type count1,
5058    const basic_static_string< M, CharT, Traits >& s,
5059    size_type pos2,
5060    size_type count2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
5061```
5062
5063[heading Description]
5064Let `sub1` be `substr(pos1, count1)`, `sub2` be `s.substr(pos2, count2)`, and `comp` be `traits_type::compare(sub1.data(), sub2.data(), std::min(sub1.size(), sub2.size())`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub1.size() == sub2.size()`, `-1` if `sub1.size() < sub2.size()`, and `1` otherwise.
5065
5066[heading Complexity]
5067
5068Linear.
5069
5070[heading Exception Safety]
5071
5072Strong guarantee.
5073
5074[heading Return Value]
5075The result of lexicographically comparing `sub1` and `sub2`.
5076[heading Parameters]
5077[table [[Name][Description]]
5078  [
5079    [`pos1`
5080    ]
5081    [
5082The index at which to begin the substring.
5083    ]
5084  ]
5085  [
5086    [`count1`
5087    ]
5088    [
5089The size of the substring.
5090    ]
5091  ]
5092  [
5093    [`s`
5094    ]
5095    [
5096The string to compare.
5097    ]
5098  ]
5099  [
5100    [`pos2`
5101    ]
5102    [
5103The index at which to begin the substring to compare.
5104    ]
5105  ]
5106  [
5107    [`count2`
5108    ]
5109    [
5110The size of the substring to compare.
5111    ]
5112  ]
5113]
5114[heading Exceptions]
5115[table [[Type][Thrown On]]
5116  [
5117    [`std::out_of_range`
5118    ]
5119    [
5120pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
5121    ]
5122  ]
5123  [
5124    [`std::out_of_range`
5125    ]
5126    [
5127`pos2 > s.size()`
5128    ]
5129  ]
5130]
5131
5132[endsect]
5133
5134[section:overload4 basic_static_string::compare (4 of 9 overloads)]
5135
5136Compare a string with the string.
5137[heading Synopsis]
5138```
5139constexpr int
5140compare(
5141    const_pointer s) const;
5142```
5143
5144[heading Description]
5145Let `len` be `traits_type::length(s)` and `comp` be traits_type::compare([link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], s, std::min(size(), len). If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] == len, `-1` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] < len, and `1` otherwise.
5146
5147[heading Complexity]
5148
5149Linear.
5150
5151[heading Return Value]
5152The result of lexicographically comparing `s` and the string.
5153[heading Parameters]
5154[table [[Name][Description]]
5155  [
5156    [`s`
5157    ]
5158    [
5159The string to compare.
5160    ]
5161  ]
5162]
5163
5164[endsect]
5165
5166[section:overload5 basic_static_string::compare (5 of 9 overloads)]
5167
5168Compare a string with the string.
5169[heading Synopsis]
5170```
5171constexpr int
5172compare(
5173    size_type pos1,
5174    size_type count1,
5175    const_pointer s) const;
5176```
5177
5178[heading Description]
5179Let `sub` be `substr(pos1, count1)`, `len` be `traits_type::length(s)`, and `comp` be `traits_type::compare(sub.data(), s, std::min(size(), len)`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub.size() == len`, `-1` if `sub.size() < len`, and `1` otherwise.
5180
5181[heading Complexity]
5182
5183Linear.
5184
5185[heading Exception Safety]
5186
5187Strong guarantee.
5188
5189[heading Return Value]
5190The result of lexicographically comparing `s` and `sub`.
5191[heading Parameters]
5192[table [[Name][Description]]
5193  [
5194    [`pos1`
5195    ]
5196    [
5197The index at which to begin the substring.
5198    ]
5199  ]
5200  [
5201    [`count1`
5202    ]
5203    [
5204The size of the substring.
5205    ]
5206  ]
5207  [
5208    [`s`
5209    ]
5210    [
5211The string to compare.
5212    ]
5213  ]
5214]
5215[heading Exceptions]
5216[table [[Type][Thrown On]]
5217  [
5218    [`std::out_of_range`
5219    ]
5220    [
5221pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
5222    ]
5223  ]
5224]
5225
5226[endsect]
5227
5228[section:overload6 basic_static_string::compare (6 of 9 overloads)]
5229
5230Compare a string with the string.
5231[heading Synopsis]
5232```
5233constexpr int
5234compare(
5235    size_type pos1,
5236    size_type count1,
5237    const_pointer s,
5238    size_type count2) const;
5239```
5240
5241[heading Description]
5242Let `sub` be `substr(pos1, count1)`, and `comp` be `traits_type::compare(sub.data(), s, std::min(size(), count2)`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub.size() == count2`, `-1` if `sub.size() < count2`, and `1` otherwise.
5243
5244[heading Complexity]
5245
5246Linear.
5247
5248[heading Exception Safety]
5249
5250Strong guarantee.
5251
5252[heading Return Value]
5253The result of lexicographically comparing `s` and `sub`.
5254[heading Parameters]
5255[table [[Name][Description]]
5256  [
5257    [`pos1`
5258    ]
5259    [
5260The index at which to begin the substring.
5261    ]
5262  ]
5263  [
5264    [`count1`
5265    ]
5266    [
5267The size of the substring.
5268    ]
5269  ]
5270  [
5271    [`s`
5272    ]
5273    [
5274The string to compare.
5275    ]
5276  ]
5277  [
5278    [`count2`
5279    ]
5280    [
5281The length of the string to compare.
5282    ]
5283  ]
5284]
5285[heading Exceptions]
5286[table [[Type][Thrown On]]
5287  [
5288    [`std::out_of_range`
5289    ]
5290    [
5291pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
5292    ]
5293  ]
5294]
5295
5296[endsect]
5297
5298[section:overload7 basic_static_string::compare (7 of 9 overloads)]
5299
5300Compare a string with the string.
5301[heading Synopsis]
5302```
5303template<
5304    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
5305constexpr int
5306compare(
5307    const T& t) const;
5308```
5309
5310[heading Description]
5311Let `s` be `string_view_type(t)` and `comp` be traits_type::compare([link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`], s.data(), std::min([link static_string.ref.boost__static_strings__basic_static_string.size `size()`], s.size()). If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] == s.size(), `-1` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] < s.size(), and `1` otherwise.
5312
5313[heading Complexity]
5314
5315Linear.
5316
5317[heading Exception Safety]
5318
5319Strong guarantee.
5320
5321[heading Template Parameters]
5322[table [[Type][Description]]
5323  [
5324    [`T`
5325    ]
5326    [
5327The type of the object to convert.
5328    ]
5329  ]
5330]
5331[heading Constraints]
5332
5333```
5334std::is_convertible<const T&, string_view>::value &&
5335!std::is_convertible<const T&, const_pointer>::value.
5336```
5337
5338
5339[heading Return Value]
5340The result of lexicographically comparing `s` and the string.
5341[heading Parameters]
5342[table [[Name][Description]]
5343  [
5344    [`t`
5345    ]
5346    [
5347The string to compare.
5348    ]
5349  ]
5350]
5351
5352[endsect]
5353
5354[section:overload8 basic_static_string::compare (8 of 9 overloads)]
5355
5356Compare a string with the string.
5357[heading Synopsis]
5358```
5359template<
5360    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
5361constexpr int
5362compare(
5363    size_type pos1,
5364    size_type count1,
5365    const T& t) const;
5366```
5367
5368[heading Description]
5369Let `s` be `string_view_type(t)`, `sub` be `substr(pos1, count1)`, and `comp` be `traits_type::compare(sub.data(), s.data(), std::min(sub.size(), s.size())`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub.size() == s.size()`, `-1` if `sub.size() < s.size()`, and `1` otherwise.
5370
5371[heading Complexity]
5372
5373Linear.
5374
5375[heading Exception Safety]
5376
5377Strong guarantee.
5378
5379[heading Template Parameters]
5380[table [[Type][Description]]
5381  [
5382    [`T`
5383    ]
5384    [
5385The type of the object to convert.
5386    ]
5387  ]
5388]
5389[heading Constraints]
5390
5391```
5392std::is_convertible<const T&, string_view>::value &&
5393!std::is_convertible<const T&, const_pointer>::value.
5394```
5395
5396
5397[heading Return Value]
5398The result of lexicographically comparing `s` and `sub`.
5399[heading Parameters]
5400[table [[Name][Description]]
5401  [
5402    [`pos1`
5403    ]
5404    [
5405The index at which to begin the substring.
5406    ]
5407  ]
5408  [
5409    [`count1`
5410    ]
5411    [
5412The length of the substring.
5413    ]
5414  ]
5415  [
5416    [`t`
5417    ]
5418    [
5419The string to compare.
5420    ]
5421  ]
5422]
5423
5424[endsect]
5425
5426[section:overload9 basic_static_string::compare (9 of 9 overloads)]
5427
5428Compare a string with the string.
5429[heading Synopsis]
5430```
5431template<
5432    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
5433constexpr int
5434compare(
5435    size_type pos1,
5436    size_type count1,
5437    const T& t,
5438    size_type pos2,
5439    size_type count2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
5440```
5441
5442[heading Description]
5443Let `sub1` be `substr(pos1, count1)`, `sub2` be `string_view_type(t).substr(pos2, count2)`, and `comp` be `traits_type::compare(sub1.data(), sub2.data(), std::min(sub1.size(), sub2.size())`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub1.size() == sub2.size()`, `-1` if `sub1.size() < sub2.size()`, and `1` otherwise.
5444
5445[heading Complexity]
5446
5447Linear.
5448
5449[heading Exception Safety]
5450
5451Strong guarantee.
5452
5453[heading Template Parameters]
5454[table [[Type][Description]]
5455  [
5456    [`T`
5457    ]
5458    [
5459The type of the object to convert.
5460    ]
5461  ]
5462]
5463[heading Constraints]
5464
5465```
5466std::is_convertible<const T&, string_view>::value &&
5467!std::is_convertible<const T&, const_pointer>::value.
5468```
5469
5470
5471[heading Return Value]
5472The result of lexicographically comparing `sub1` and `sub2`.
5473[heading Parameters]
5474[table [[Name][Description]]
5475  [
5476    [`pos1`
5477    ]
5478    [
5479The index at which to begin the substring in the string.
5480    ]
5481  ]
5482  [
5483    [`count1`
5484    ]
5485    [
5486The length of the substring in the string.
5487    ]
5488  ]
5489  [
5490    [`t`
5491    ]
5492    [
5493The string to compare.
5494    ]
5495  ]
5496  [
5497    [`pos2`
5498    ]
5499    [
5500The index at which to begin the substring in the string view.
5501    ]
5502  ]
5503  [
5504    [`count2`
5505    ]
5506    [
5507The length of the substring in the string view.
5508    ]
5509  ]
5510]
5511
5512[endsect]
5513
5514
5515[endsect]
5516
5517[section:substr basic_static_string::substr]
5518[indexterm2 substr..basic_static_string]
5519
5520
5521Return a substring.
5522[heading Synopsis]
5523```
5524constexpr basic_static_string
5525substr(
5526    size_type pos = 0,
5527    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
5528```
5529
5530[heading Description]
5531Returns a substring of the string.
5532
5533[heading Exception Safety]
5534
5535Strong guarantee.
5536
5537[heading Return Value]
5538A string object containing the characters {[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`] + pos, std::min(count, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos)).
5539[heading Parameters]
5540[table [[Name][Description]]
5541  [
5542    [`pos`
5543    ]
5544    [
5545The index to being the substring at. The default arugment for this parameter is `0`.
5546    ]
5547  ]
5548  [
5549    [`count`
5550    ]
5551    [
5552The length of the substring. The default arugment for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
5553    ]
5554  ]
5555]
5556[heading Exceptions]
5557[table [[Type][Thrown On]]
5558  [
5559    [`std::out_of_range`
5560    ]
5561    [
5562pos > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
5563    ]
5564  ]
5565]
5566
5567[endsect]
5568
5569[section:subview basic_static_string::subview]
5570[indexterm2 subview..basic_static_string]
5571
5572
5573Return a string view of a substring.
5574[heading Synopsis]
5575```
5576constexpr string_view_type
5577subview(
5578    size_type pos = 0,
5579    size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
5580```
5581
5582[heading Description]
5583Returns a view of a substring.
5584
5585[heading Exception Safety]
5586
5587Strong guarantee.
5588
5589[heading Return Value]
5590A `string_view_type` object referring to {[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `data()`] + pos, std::min(count, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos)).
5591[heading Parameters]
5592[table [[Name][Description]]
5593  [
5594    [`pos`
5595    ]
5596    [
5597The index to being the substring at. The default arugment for this parameter is `0`.
5598    ]
5599  ]
5600  [
5601    [`count`
5602    ]
5603    [
5604The length of the substring. The default arugment for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
5605    ]
5606  ]
5607]
5608[heading Exceptions]
5609[table [[Type][Thrown On]]
5610  [
5611    [`std::out_of_range`
5612    ]
5613    [
5614pos > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
5615    ]
5616  ]
5617]
5618
5619[endsect]
5620
5621[section:copy basic_static_string::copy]
5622[indexterm2 copy..basic_static_string]
5623
5624
5625Copy a substring to another string.
5626[heading Synopsis]
5627```
5628constexpr size_type
5629copy(
5630    pointer dest,
5631    size_type count,
5632    size_type pos = 0) const;
5633```
5634
5635[heading Description]
5636Copies std::min(count, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos) characters starting at index `pos` to the string pointed to by `dest`.
5637
5638[heading Remarks]
5639The resulting string is not null terminated.
5640[heading Return Value]
5641The number of characters copied.
5642[heading Parameters]
5643[table [[Name][Description]]
5644  [
5645    [`count`
5646    ]
5647    [
5648The number of characters to copy.
5649    ]
5650  ]
5651  [
5652    [`dest`
5653    ]
5654    [
5655The string to copy to.
5656    ]
5657  ]
5658  [
5659    [`pos`
5660    ]
5661    [
5662The index to begin copying from. The default argument for this parameter is `0`.
5663    ]
5664  ]
5665]
5666[heading Exceptions]
5667[table [[Type][Thrown On]]
5668  [
5669    [`std::out_of_range`
5670    ]
5671    [
5672pos > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
5673    ]
5674  ]
5675]
5676
5677[endsect]
5678
5679[section:resize basic_static_string::resize]
5680[indexterm2 resize..basic_static_string]
5681
5682
5683Change the size of the string.
5684```
5685constexpr void
5686``[link static_string.ref.boost__static_strings__basic_static_string.resize.overload1 resize]``(
5687    size_type n);
5688  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.resize.overload1 `more...`]]``
5689
5690constexpr void
5691``[link static_string.ref.boost__static_strings__basic_static_string.resize.overload2 resize]``(
5692    size_type n,
5693    value_type c);
5694  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.resize.overload2 `more...`]]``
5695```
5696
5697[section:overload1 basic_static_string::resize (1 of 2 overloads)]
5698
5699Change the size of the string.
5700[heading Synopsis]
5701```
5702constexpr void
5703resize(
5704    size_type n);
5705```
5706
5707[heading Description]
5708Resizes the string to contain `n` characters. If n > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`], characters with the value `CharT()` are appended. Otherwise, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] is reduced to `n`.
5709
5710[heading Parameters]
5711[table [[Name][Description]]
5712  [
5713    [`n`
5714    ]
5715    [
5716The size to resize the string to.
5717    ]
5718  ]
5719]
5720[heading Exceptions]
5721[table [[Type][Thrown On]]
5722  [
5723    [`std::out_of_range`
5724    ]
5725    [
5726n > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
5727    ]
5728  ]
5729]
5730
5731[endsect]
5732
5733[section:overload2 basic_static_string::resize (2 of 2 overloads)]
5734
5735Change the size of the string.
5736[heading Synopsis]
5737```
5738constexpr void
5739resize(
5740    size_type n,
5741    value_type c);
5742```
5743
5744[heading Description]
5745Resizes the string to contain `n` characters. If n > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`], copies of `c` are appended. Otherwise, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] is reduced to `n`.
5746
5747[heading Parameters]
5748[table [[Name][Description]]
5749  [
5750    [`n`
5751    ]
5752    [
5753The size to resize the string to.
5754    ]
5755  ]
5756  [
5757    [`c`
5758    ]
5759    [
5760The characters to append if the size increases.
5761    ]
5762  ]
5763]
5764[heading Exceptions]
5765[table [[Type][Thrown On]]
5766  [
5767    [`std::out_of_range`
5768    ]
5769    [
5770n > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
5771    ]
5772  ]
5773]
5774
5775[endsect]
5776
5777
5778[endsect]
5779
5780[section:swap basic_static_string::swap]
5781[indexterm2 swap..basic_static_string]
5782
5783
5784Swap two strings.
5785```
5786constexpr void
5787``[link static_string.ref.boost__static_strings__basic_static_string.swap.overload1 swap]``(
5788    basic_static_string& s);
5789  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.swap.overload1 `more...`]]``
5790
5791template<
5792    std::size_t M>
5793constexpr void
5794``[link static_string.ref.boost__static_strings__basic_static_string.swap.overload2 swap]``(
5795    basic_static_string< M, CharT, Traits >& s);
5796  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.swap.overload2 `more...`]]``
5797```
5798
5799[section:overload1 basic_static_string::swap (1 of 2 overloads)]
5800
5801Swap two strings.
5802[heading Synopsis]
5803```
5804constexpr void
5805swap(
5806    basic_static_string& s);
5807```
5808
5809[heading Description]
5810Swaps the contents of the string and `s`.
5811
5812[heading Exception Safety]
5813
5814Strong guarantee.
5815
5816[heading Remarks]
5817
5818All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
5819
5820[heading Parameters]
5821[table [[Name][Description]]
5822  [
5823    [`s`
5824    ]
5825    [
5826The string to swap with.
5827    ]
5828  ]
5829]
5830
5831[endsect]
5832
5833[section:overload2 basic_static_string::swap (2 of 2 overloads)]
5834
5835Swap two strings.
5836[heading Synopsis]
5837```
5838template<
5839    std::size_t M>
5840constexpr void
5841swap(
5842    basic_static_string< M, CharT, Traits >& s);
5843```
5844
5845[heading Description]
5846Swaps the contents of the string and `s`.
5847
5848[heading Exception Safety]
5849
5850Strong guarantee.
5851
5852[heading Remarks]
5853
5854All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
5855
5856[heading Template Parameters]
5857[table [[Type][Description]]
5858  [
5859    [`M`
5860    ]
5861    [
5862The size of the string to swap with.
5863    ]
5864  ]
5865]
5866[heading Parameters]
5867[table [[Name][Description]]
5868  [
5869    [`s`
5870    ]
5871    [
5872The string to swap with.
5873    ]
5874  ]
5875]
5876[heading Exceptions]
5877[table [[Type][Thrown On]]
5878  [
5879    [`std::length_error`
5880    ]
5881    [
5882s.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`] || [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] > s.max_size()
5883    ]
5884  ]
5885]
5886
5887[endsect]
5888
5889
5890[endsect]
5891
5892[section:replace basic_static_string::replace]
5893[indexterm2 replace..basic_static_string]
5894
5895
5896Replace a part of the string.
5897```
5898template<
5899    size_t M>
5900constexpr basic_static_string&
5901``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload1 replace]``(
5902    size_type pos1,
5903    size_type n1,
5904    const basic_static_string< M, CharT, Traits >& str);
5905  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload1 `more...`]]``
5906
5907template<
5908    std::size_t M>
5909constexpr basic_static_string&
5910``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload2 replace]``(
5911    size_type pos1,
5912    size_type n1,
5913    const basic_static_string< M, CharT, Traits >& str,
5914    size_type pos2,
5915    size_type n2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
5916  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload2 `more...`]]``
5917
5918template<
5919    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
5920constexpr basic_static_string&
5921``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload3 replace]``(
5922    size_type pos1,
5923    size_type n1,
5924    const T& t);
5925  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload3 `more...`]]``
5926
5927template<
5928    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
5929constexpr basic_static_string&
5930``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload4 replace]``(
5931    size_type pos1,
5932    size_type n1,
5933    const T& t,
5934    size_type pos2,
5935    size_type n2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
5936  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload4 `more...`]]``
5937
5938constexpr basic_static_string&
5939``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload5 replace]``(
5940    size_type pos,
5941    size_type n1,
5942    const_pointer s,
5943    size_type n2);
5944  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload5 `more...`]]``
5945
5946constexpr basic_static_string&
5947``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload6 replace]``(
5948    size_type pos,
5949    size_type n1,
5950    const_pointer s);
5951  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload6 `more...`]]``
5952
5953constexpr basic_static_string&
5954``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload7 replace]``(
5955    size_type pos,
5956    size_type n1,
5957    size_type n2,
5958    value_type c);
5959  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload7 `more...`]]``
5960
5961template<
5962    std::size_t M>
5963constexpr basic_static_string&
5964``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload8 replace]``(
5965    const_iterator i1,
5966    const_iterator i2,
5967    const basic_static_string< M, CharT, Traits >& str);
5968  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload8 `more...`]]``
5969
5970template<
5971    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
5972constexpr basic_static_string&
5973``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload9 replace]``(
5974    const_iterator i1,
5975    const_iterator i2,
5976    const T& t);
5977  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload9 `more...`]]``
5978
5979constexpr basic_static_string&
5980``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload10 replace]``(
5981    const_iterator i1,
5982    const_iterator i2,
5983    const_pointer s,
5984    size_type n);
5985  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload10 `more...`]]``
5986
5987constexpr basic_static_string&
5988``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload11 replace]``(
5989    const_iterator i1,
5990    const_iterator i2,
5991    const_pointer s);
5992  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload11 `more...`]]``
5993
5994constexpr basic_static_string&
5995``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload12 replace]``(
5996    const_iterator i1,
5997    const_iterator i2,
5998    size_type n,
5999    value_type c);
6000  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload12 `more...`]]``
6001
6002template<
6003    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
6004constexpr basic_static_string&
6005``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload13 replace]``(
6006    const_iterator i1,
6007    const_iterator i2,
6008    InputIterator j1,
6009    InputIterator j2);
6010  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload13 `more...`]]``
6011
6012constexpr basic_static_string&
6013``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload14 replace]``(
6014    const_iterator i1,
6015    const_iterator i2,
6016    std::initializer_list< value_type > il);
6017  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload14 `more...`]]``
6018```
6019
6020[section:overload1 basic_static_string::replace (1 of 14 overloads)]
6021
6022Replace a part of the string.
6023[heading Synopsis]
6024```
6025template<
6026    size_t M>
6027constexpr basic_static_string&
6028replace(
6029    size_type pos1,
6030    size_type n1,
6031    const basic_static_string< M, CharT, Traits >& str);
6032```
6033
6034[heading Description]
6035Replaces `rcount` characters starting at index `pos1` with those of `str`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos1).
6036
6037[heading Exception Safety]
6038
6039Strong guarantee.
6040
6041[heading Remarks]
6042The replacement is done unchecked when the capacity of `str` differs from that of the string the function is called on.
6043All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6044
6045[heading Template Parameters]
6046[table [[Type][Description]]
6047  [
6048    [`M`
6049    ]
6050    [
6051The size of the input string.
6052    ]
6053  ]
6054]
6055[heading Return Value]
6056`*this`
6057[heading Parameters]
6058[table [[Name][Description]]
6059  [
6060    [`pos1`
6061    ]
6062    [
6063The index to replace at.
6064    ]
6065  ]
6066  [
6067    [`n1`
6068    ]
6069    [
6070The number of characters to replace.
6071    ]
6072  ]
6073  [
6074    [`str`
6075    ]
6076    [
6077The string to replace with.
6078    ]
6079  ]
6080]
6081[heading Exceptions]
6082[table [[Type][Thrown On]]
6083  [
6084    [`std::length_error`
6085    ]
6086    [
6087[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (str.size() - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6088    ]
6089  ]
6090  [
6091    [`std::out_of_range`
6092    ]
6093    [
6094pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
6095    ]
6096  ]
6097]
6098
6099[endsect]
6100
6101[section:overload2 basic_static_string::replace (2 of 14 overloads)]
6102
6103Replace a part of the string.
6104[heading Synopsis]
6105```
6106template<
6107    std::size_t M>
6108constexpr basic_static_string&
6109replace(
6110    size_type pos1,
6111    size_type n1,
6112    const basic_static_string< M, CharT, Traits >& str,
6113    size_type pos2,
6114    size_type n2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
6115```
6116
6117[heading Description]
6118Replaces `rcount` characters starting at index `pos1` with those of `str.subview(pos2, n2)`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos1).
6119
6120[heading Exception Safety]
6121
6122Strong guarantee.
6123
6124[heading Remarks]
6125The replacement is done unchecked when the capacity of `str` differs from that of the string the function is called on.
6126All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6127
6128[heading Return Value]
6129`*this`
6130[heading Parameters]
6131[table [[Name][Description]]
6132  [
6133    [`pos1`
6134    ]
6135    [
6136The index to replace at.
6137    ]
6138  ]
6139  [
6140    [`n1`
6141    ]
6142    [
6143The number of characters to replace.
6144    ]
6145  ]
6146  [
6147    [`str`
6148    ]
6149    [
6150The string to replace with.
6151    ]
6152  ]
6153  [
6154    [`pos2`
6155    ]
6156    [
6157The index to begin the substring.
6158    ]
6159  ]
6160  [
6161    [`n2`
6162    ]
6163    [
6164The length of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
6165    ]
6166  ]
6167]
6168[heading Exceptions]
6169[table [[Type][Thrown On]]
6170  [
6171    [`std::length_error`
6172    ]
6173    [
6174[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (std::min(str.size(), n2) - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6175    ]
6176  ]
6177  [
6178    [`std::out_of_range`
6179    ]
6180    [
6181pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
6182    ]
6183  ]
6184  [
6185    [`std::out_of_range`
6186    ]
6187    [
6188`pos2 > str.size()`
6189    ]
6190  ]
6191]
6192
6193[endsect]
6194
6195[section:overload3 basic_static_string::replace (3 of 14 overloads)]
6196
6197Replace a part of the string.
6198[heading Synopsis]
6199```
6200template<
6201    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
6202constexpr basic_static_string&
6203replace(
6204    size_type pos1,
6205    size_type n1,
6206    const T& t);
6207```
6208
6209[heading Description]
6210Constructs a temporary `string_view_type` object `sv` from `t`, and replaces `rcount` characters starting at index `pos1` with those of `sv`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos1).
6211
6212[heading Exception Safety]
6213
6214Strong guarantee.
6215
6216[heading Remarks]
6217All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6218[heading Template Parameters]
6219[table [[Type][Description]]
6220  [
6221    [`T`
6222    ]
6223    [
6224The type of the object to convert.
6225    ]
6226  ]
6227]
6228[heading Constraints]
6229
6230`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
6231
6232[heading Return Value]
6233`*this`
6234[heading Parameters]
6235[table [[Name][Description]]
6236  [
6237    [`pos1`
6238    ]
6239    [
6240The index to replace at.
6241    ]
6242  ]
6243  [
6244    [`n1`
6245    ]
6246    [
6247The number of characters to replace.
6248    ]
6249  ]
6250  [
6251    [`t`
6252    ]
6253    [
6254The object to replace with.
6255    ]
6256  ]
6257]
6258[heading Exceptions]
6259[table [[Type][Thrown On]]
6260  [
6261    [`std::length_error`
6262    ]
6263    [
6264[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (sv.size() - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6265    ]
6266  ]
6267  [
6268    [`std::out_of_range`
6269    ]
6270    [
6271pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
6272    ]
6273  ]
6274]
6275
6276[endsect]
6277
6278[section:overload4 basic_static_string::replace (4 of 14 overloads)]
6279
6280Replace a part of the string.
6281[heading Synopsis]
6282```
6283template<
6284    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
6285constexpr basic_static_string&
6286replace(
6287    size_type pos1,
6288    size_type n1,
6289    const T& t,
6290    size_type pos2,
6291    size_type n2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
6292```
6293
6294[heading Description]
6295Constructs a temporary `string_view_type` object `sv` from `t`, and replaces `rcount` characters starting at index `pos1` with those of `sv.substr(pos2, n2)`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos).
6296
6297[heading Exception Safety]
6298
6299Strong guarantee.
6300
6301[heading Remarks]
6302All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6303[heading Template Parameters]
6304[table [[Type][Description]]
6305  [
6306    [`T`
6307    ]
6308    [
6309The type of the object to convert.
6310    ]
6311  ]
6312]
6313[heading Constraints]
6314
6315`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
6316
6317[heading Return Value]
6318`*this`
6319[heading Parameters]
6320[table [[Name][Description]]
6321  [
6322    [`pos1`
6323    ]
6324    [
6325The index to replace at.
6326    ]
6327  ]
6328  [
6329    [`n1`
6330    ]
6331    [
6332The number of characters to replace.
6333    ]
6334  ]
6335  [
6336    [`t`
6337    ]
6338    [
6339The object to replace with.
6340    ]
6341  ]
6342  [
6343    [`pos2`
6344    ]
6345    [
6346The index to begin the substring.
6347    ]
6348  ]
6349  [
6350    [`n2`
6351    ]
6352    [
6353The length of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
6354    ]
6355  ]
6356]
6357[heading Exceptions]
6358[table [[Type][Thrown On]]
6359  [
6360    [`std::length_error`
6361    ]
6362    [
6363[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (std::min(n2, sv.size()) - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6364    ]
6365  ]
6366  [
6367    [`std::out_of_range`
6368    ]
6369    [
6370pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
6371    ]
6372  ]
6373  [
6374    [`std::out_of_range`
6375    ]
6376    [
6377`pos2 > sv.size()`
6378    ]
6379  ]
6380]
6381
6382[endsect]
6383
6384[section:overload5 basic_static_string::replace (5 of 14 overloads)]
6385
6386Replace a part of the string.
6387[heading Synopsis]
6388```
6389constexpr basic_static_string&
6390replace(
6391    size_type pos,
6392    size_type n1,
6393    const_pointer s,
6394    size_type n2);
6395```
6396
6397[heading Description]
6398Replaces `rcount` characters starting at index `pos` with those of `{s, s + n2)`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos).
6399
6400[heading Exception Safety]
6401
6402Strong guarantee.
6403
6404[heading Remarks]
6405All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6406[heading Return Value]
6407`*this`
6408[heading Parameters]
6409[table [[Name][Description]]
6410  [
6411    [`pos`
6412    ]
6413    [
6414The index to replace at.
6415    ]
6416  ]
6417  [
6418    [`n1`
6419    ]
6420    [
6421The number of characters to replace.
6422    ]
6423  ]
6424  [
6425    [`s`
6426    ]
6427    [
6428The string to replace with.
6429    ]
6430  ]
6431  [
6432    [`n2`
6433    ]
6434    [
6435The length of the string to replace with.
6436    ]
6437  ]
6438]
6439[heading Exceptions]
6440[table [[Type][Thrown On]]
6441  [
6442    [`std::length_error`
6443    ]
6444    [
6445[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (n2 - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6446    ]
6447  ]
6448  [
6449    [`std::out_of_range`
6450    ]
6451    [
6452pos > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
6453    ]
6454  ]
6455]
6456
6457[endsect]
6458
6459[section:overload6 basic_static_string::replace (6 of 14 overloads)]
6460
6461Replace a part of the string.
6462[heading Synopsis]
6463```
6464constexpr basic_static_string&
6465replace(
6466    size_type pos,
6467    size_type n1,
6468    const_pointer s);
6469```
6470
6471[heading Description]
6472Replaces `rcount` characters starting at index `pos` with those of `{s, s + len)`, where the length of the string `len` is `traits_type::length(s)` and `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos).
6473
6474[heading Exception Safety]
6475
6476Strong guarantee.
6477
6478[heading Remarks]
6479All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6480[heading Return Value]
6481`*this`
6482[heading Parameters]
6483[table [[Name][Description]]
6484  [
6485    [`pos`
6486    ]
6487    [
6488The index to replace at.
6489    ]
6490  ]
6491  [
6492    [`n1`
6493    ]
6494    [
6495The number of characters to replace.
6496    ]
6497  ]
6498  [
6499    [`s`
6500    ]
6501    [
6502The string to replace with.
6503    ]
6504  ]
6505]
6506[heading Exceptions]
6507[table [[Type][Thrown On]]
6508  [
6509    [`std::length_error`
6510    ]
6511    [
6512[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (len - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6513    ]
6514  ]
6515  [
6516    [`std::out_of_range`
6517    ]
6518    [
6519pos > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
6520    ]
6521  ]
6522]
6523
6524[endsect]
6525
6526[section:overload7 basic_static_string::replace (7 of 14 overloads)]
6527
6528Replace a part of the string.
6529[heading Synopsis]
6530```
6531constexpr basic_static_string&
6532replace(
6533    size_type pos,
6534    size_type n1,
6535    size_type n2,
6536    value_type c);
6537```
6538
6539[heading Description]
6540Replaces `rcount` characters starting at index `pos` with `n2` copies of `c`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos).
6541
6542[heading Exception Safety]
6543
6544Strong guarantee.
6545
6546[heading Remarks]
6547All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6548[heading Return Value]
6549`*this`
6550[heading Parameters]
6551[table [[Name][Description]]
6552  [
6553    [`pos`
6554    ]
6555    [
6556The index to replace at.
6557    ]
6558  ]
6559  [
6560    [`n1`
6561    ]
6562    [
6563The number of characters to replace.
6564    ]
6565  ]
6566  [
6567    [`n2`
6568    ]
6569    [
6570The number of characters to replace with.
6571    ]
6572  ]
6573  [
6574    [`c`
6575    ]
6576    [
6577The character to replace with.
6578    ]
6579  ]
6580]
6581[heading Exceptions]
6582[table [[Type][Thrown On]]
6583  [
6584    [`std::length_error`
6585    ]
6586    [
6587[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (n2 - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6588    ]
6589  ]
6590  [
6591    [`std::out_of_range`
6592    ]
6593    [
6594pos > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
6595    ]
6596  ]
6597]
6598
6599[endsect]
6600
6601[section:overload8 basic_static_string::replace (8 of 14 overloads)]
6602
6603Replace a part of the string.
6604[heading Synopsis]
6605```
6606template<
6607    std::size_t M>
6608constexpr basic_static_string&
6609replace(
6610    const_iterator i1,
6611    const_iterator i2,
6612    const basic_static_string< M, CharT, Traits >& str);
6613```
6614
6615[heading Description]
6616Replaces the characters in the range `{i1, i2)` with those of `str`.
6617
6618[heading Precondition]
6619
6620`{i1, i2)`is a valid range.
6621
6622[heading Exception Safety]
6623
6624Strong guarantee.
6625
6626[heading Remarks]
6627The replacement is done unchecked when the capacity of `str` differs from that of the string the function is called on.
6628All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6629
6630[heading Template Parameters]
6631[table [[Type][Description]]
6632  [
6633    [`M`
6634    ]
6635    [
6636The size of the input string.
6637    ]
6638  ]
6639]
6640[heading Return Value]
6641`*this`
6642[heading Parameters]
6643[table [[Name][Description]]
6644  [
6645    [`i1`
6646    ]
6647    [
6648An iterator referring to the first character to replace.
6649    ]
6650  ]
6651  [
6652    [`i2`
6653    ]
6654    [
6655An iterator referring past the end of the last character to replace.
6656    ]
6657  ]
6658  [
6659    [`str`
6660    ]
6661    [
6662The string to replace with.
6663    ]
6664  ]
6665]
6666[heading Exceptions]
6667[table [[Type][Thrown On]]
6668  [
6669    [`std::length_error`
6670    ]
6671    [
6672[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (str.size() - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6673    ]
6674  ]
6675]
6676
6677[endsect]
6678
6679[section:overload9 basic_static_string::replace (9 of 14 overloads)]
6680
6681Replace a part of the string.
6682[heading Synopsis]
6683```
6684template<
6685    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
6686constexpr basic_static_string&
6687replace(
6688    const_iterator i1,
6689    const_iterator i2,
6690    const T& t);
6691```
6692
6693[heading Description]
6694Constructs a temporary `string_view_type` object `sv` from `t`, and replaces the characters in the range `{i1, i2)` with those of `sv`.
6695
6696[heading Precondition]
6697
6698`{i1, i2)`is a valid range.
6699
6700[heading Exception Safety]
6701
6702Strong guarantee.
6703
6704[heading Remarks]
6705All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6706[heading Template Parameters]
6707[table [[Type][Description]]
6708  [
6709    [`T`
6710    ]
6711    [
6712The type of the object to convert.
6713    ]
6714  ]
6715]
6716[heading Constraints]
6717
6718`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
6719
6720[heading Return Value]
6721`*this`
6722[heading Parameters]
6723[table [[Name][Description]]
6724  [
6725    [`i1`
6726    ]
6727    [
6728An iterator referring to the first character to replace.
6729    ]
6730  ]
6731  [
6732    [`i2`
6733    ]
6734    [
6735An iterator referring past the end of the last character to replace.
6736    ]
6737  ]
6738  [
6739    [`t`
6740    ]
6741    [
6742The object to replace with.
6743    ]
6744  ]
6745]
6746[heading Exceptions]
6747[table [[Type][Thrown On]]
6748  [
6749    [`std::length_error`
6750    ]
6751    [
6752[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (sv.size() - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6753    ]
6754  ]
6755]
6756
6757[endsect]
6758
6759[section:overload10 basic_static_string::replace (10 of 14 overloads)]
6760
6761Replace a part of the string.
6762[heading Synopsis]
6763```
6764constexpr basic_static_string&
6765replace(
6766    const_iterator i1,
6767    const_iterator i2,
6768    const_pointer s,
6769    size_type n);
6770```
6771
6772[heading Description]
6773Replaces the characters in the range `{i1, i2)` with those of `{s, s + n)`.
6774
6775[heading Precondition]
6776
6777`{i1, i2)`is a valid range.
6778
6779[heading Exception Safety]
6780
6781Strong guarantee.
6782
6783[heading Remarks]
6784All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6785[heading Return Value]
6786`*this`
6787[heading Parameters]
6788[table [[Name][Description]]
6789  [
6790    [`i1`
6791    ]
6792    [
6793An iterator referring to the first character to replace.
6794    ]
6795  ]
6796  [
6797    [`i2`
6798    ]
6799    [
6800An iterator referring past the end of the last character to replace.
6801    ]
6802  ]
6803  [
6804    [`s`
6805    ]
6806    [
6807The string to replace with.
6808    ]
6809  ]
6810  [
6811    [`n`
6812    ]
6813    [
6814The length of the string to replace with.
6815    ]
6816  ]
6817]
6818[heading Exceptions]
6819[table [[Type][Thrown On]]
6820  [
6821    [`std::length_error`
6822    ]
6823    [
6824[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (n - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6825    ]
6826  ]
6827]
6828
6829[endsect]
6830
6831[section:overload11 basic_static_string::replace (11 of 14 overloads)]
6832
6833Replace a part of the string.
6834[heading Synopsis]
6835```
6836constexpr basic_static_string&
6837replace(
6838    const_iterator i1,
6839    const_iterator i2,
6840    const_pointer s);
6841```
6842
6843[heading Description]
6844Replaces the characters in the range `{i1, i2)` with those of `{s, s + len)`, where the length of the string `len` is `traits_type::length(s)`.
6845
6846[heading Precondition]
6847
6848`{i1, i2)`shall be a valid range.
6849
6850[heading Exception Safety]
6851
6852Strong guarantee.
6853
6854[heading Remarks]
6855All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6856[heading Return Value]
6857`*this`
6858[heading Parameters]
6859[table [[Name][Description]]
6860  [
6861    [`i1`
6862    ]
6863    [
6864An iterator referring to the first character to replace.
6865    ]
6866  ]
6867  [
6868    [`i2`
6869    ]
6870    [
6871An iterator referring past the end of the last character to replace.
6872    ]
6873  ]
6874  [
6875    [`s`
6876    ]
6877    [
6878The string to replace with.
6879    ]
6880  ]
6881]
6882[heading Exceptions]
6883[table [[Type][Thrown On]]
6884  [
6885    [`std::length_error`
6886    ]
6887    [
6888[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (len - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6889    ]
6890  ]
6891]
6892
6893[endsect]
6894
6895[section:overload12 basic_static_string::replace (12 of 14 overloads)]
6896
6897Replace a part of the string.
6898[heading Synopsis]
6899```
6900constexpr basic_static_string&
6901replace(
6902    const_iterator i1,
6903    const_iterator i2,
6904    size_type n,
6905    value_type c);
6906```
6907
6908[heading Description]
6909Replaces the characters in the range `{i1, i2)` with `n` copies of `c`.
6910
6911[heading Precondition]
6912
6913`{i1, i2)`is a valid range.
6914
6915[heading Exception Safety]
6916
6917Strong guarantee.
6918
6919[heading Remarks]
6920All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6921[heading Return Value]
6922`*this`
6923[heading Parameters]
6924[table [[Name][Description]]
6925  [
6926    [`i1`
6927    ]
6928    [
6929An iterator referring to the first character to replace.
6930    ]
6931  ]
6932  [
6933    [`i2`
6934    ]
6935    [
6936An iterator past the end of the last character to replace.
6937    ]
6938  ]
6939  [
6940    [`n`
6941    ]
6942    [
6943The number of characters to replace with.
6944    ]
6945  ]
6946  [
6947    [`c`
6948    ]
6949    [
6950The character to replace with.
6951    ]
6952  ]
6953]
6954[heading Exceptions]
6955[table [[Type][Thrown On]]
6956  [
6957    [`std::length_error`
6958    ]
6959    [
6960[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (n - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
6961    ]
6962  ]
6963]
6964
6965[endsect]
6966
6967[section:overload13 basic_static_string::replace (13 of 14 overloads)]
6968
6969Replace a part of the string.
6970[heading Synopsis]
6971```
6972template<
6973    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
6974constexpr basic_static_string&
6975replace(
6976    const_iterator i1,
6977    const_iterator i2,
6978    InputIterator j1,
6979    InputIterator j2);
6980```
6981
6982[heading Description]
6983Replaces the characters in the range `{i1, i2)` with those of `{j1, j2)`.
6984
6985[heading Precondition]
6986
6987`{i1, i2)`is a valid range.
6988`{j1, j2)` is a valid range.
6989
6990[heading Exception Safety]
6991
6992Strong guarantee.
6993
6994[heading Remarks]
6995All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
6996[heading Template Parameters]
6997[table [[Type][Description]]
6998  [
6999    [`InputIterator`
7000    ]
7001    [
7002The type of the iterators.
7003    ]
7004  ]
7005]
7006[heading Constraints]
7007
7008`InputIterator`satisfies [*InputIterator] and does not satisfy [*ForwardIterator].
7009
7010[heading Return Value]
7011`*this`
7012[heading Parameters]
7013[table [[Name][Description]]
7014  [
7015    [`i1`
7016    ]
7017    [
7018An iterator referring to the first character to replace.
7019    ]
7020  ]
7021  [
7022    [`i2`
7023    ]
7024    [
7025An iterator referring past the end of the last character to replace.
7026    ]
7027  ]
7028  [
7029    [`j1`
7030    ]
7031    [
7032An iterator referring to the first character to replace with.
7033    ]
7034  ]
7035  [
7036    [`j2`
7037    ]
7038    [
7039An iterator referring past the end of the last character to replace with.
7040    ]
7041  ]
7042]
7043[heading Exceptions]
7044[table [[Type][Thrown On]]
7045  [
7046    [`std::length_error`
7047    ]
7048    [
7049[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (inserted - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
7050    ]
7051  ]
7052]
7053
7054[endsect]
7055
7056[section:overload14 basic_static_string::replace (14 of 14 overloads)]
7057
7058Replace a part of the string.
7059[heading Synopsis]
7060```
7061constexpr basic_static_string&
7062replace(
7063    const_iterator i1,
7064    const_iterator i2,
7065    std::initializer_list< value_type > il);
7066```
7067
7068[heading Description]
7069Replaces the characters in the range `{i1, i2)` with those of contained in the initializer list `il`.
7070
7071[heading Precondition]
7072
7073`{i1, i2)`is a valid range.
7074
7075[heading Exception Safety]
7076
7077Strong guarantee.
7078
7079[heading Remarks]
7080All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
7081[heading Return Value]
7082`*this`
7083[heading Parameters]
7084[table [[Name][Description]]
7085  [
7086    [`i1`
7087    ]
7088    [
7089An iterator referring to the first character to replace.
7090    ]
7091  ]
7092  [
7093    [`i2`
7094    ]
7095    [
7096An iterator past the end of the last character to replace.
7097    ]
7098  ]
7099  [
7100    [`il`
7101    ]
7102    [
7103The initializer list to replace with.
7104    ]
7105  ]
7106]
7107[heading Exceptions]
7108[table [[Type][Thrown On]]
7109  [
7110    [`std::length_error`
7111    ]
7112    [
7113[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (il.size() - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
7114    ]
7115  ]
7116]
7117
7118[endsect]
7119
7120
7121[endsect]
7122
7123[section:find basic_static_string::find]
7124[indexterm2 find..basic_static_string]
7125
7126
7127Find the first occurrence of a string within the string.
7128```
7129template<
7130    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
7131constexpr size_type
7132``[link static_string.ref.boost__static_strings__basic_static_string.find.overload1 find]``(
7133    const T& t,
7134    size_type pos = 0) const;
7135  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find.overload1 `more...`]]``
7136
7137template<
7138    std::size_t M>
7139constexpr size_type
7140``[link static_string.ref.boost__static_strings__basic_static_string.find.overload2 find]``(
7141    const basic_static_string< M, CharT, Traits >& str,
7142    size_type pos = 0) const;
7143  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find.overload2 `more...`]]``
7144
7145constexpr size_type
7146``[link static_string.ref.boost__static_strings__basic_static_string.find.overload3 find]``(
7147    const_pointer s,
7148    size_type pos,
7149    size_type n) const;
7150  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find.overload3 `more...`]]``
7151
7152constexpr size_type
7153``[link static_string.ref.boost__static_strings__basic_static_string.find.overload4 find]``(
7154    const_pointer s,
7155    size_type pos = 0) const;
7156  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find.overload4 `more...`]]``
7157```
7158
7159
7160Find the first occurrence of a character within the string.
7161```
7162constexpr size_type
7163``[link static_string.ref.boost__static_strings__basic_static_string.find.overload5 find]``(
7164    value_type c,
7165    size_type pos = 0) const;
7166  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find.overload5 `more...`]]``
7167```
7168
7169[section:overload1 basic_static_string::find (1 of 5 overloads)]
7170
7171Find the first occurrence of a string within the string.
7172[heading Synopsis]
7173```
7174template<
7175    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
7176constexpr size_type
7177find(
7178    const T& t,
7179    size_type pos = 0) const;
7180```
7181
7182[heading Description]
7183Constructs a temporary `string_view_type` object `sv` from `t`, and finds the first occurrence of `sv` within the string starting at the index `pos`.
7184
7185[heading Complexity]
7186
7187Linear.
7188
7189[heading Remarks]
7190An empty string is always found.
7191[heading Template Parameters]
7192[table [[Type][Description]]
7193  [
7194    [`T`
7195    ]
7196    [
7197The type of the object to convert.
7198    ]
7199  ]
7200]
7201[heading Constraints]
7202
7203`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
7204
7205[heading Return Value]
7206The lowest index `idx` greater than or equal to `pos` where each element of `{sv.begin(), sv.end())` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx + count) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7207[heading Parameters]
7208[table [[Name][Description]]
7209  [
7210    [`t`
7211    ]
7212    [
7213The string to search for.
7214    ]
7215  ]
7216  [
7217    [`pos`
7218    ]
7219    [
7220The index to start searching at. The default argument for this parameter is `0`.
7221    ]
7222  ]
7223]
7224
7225[endsect]
7226
7227[section:overload2 basic_static_string::find (2 of 5 overloads)]
7228
7229Find the first occurrence of a string within the string.
7230[heading Synopsis]
7231```
7232template<
7233    std::size_t M>
7234constexpr size_type
7235find(
7236    const basic_static_string< M, CharT, Traits >& str,
7237    size_type pos = 0) const;
7238```
7239
7240[heading Description]
7241Finds the first occurrence of `str` within the string starting at the index `pos`.
7242
7243[heading Complexity]
7244
7245Linear.
7246
7247[heading Return Value]
7248The lowest index `idx` greater than or equal to `pos` where each element of `str` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx + str.size()) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7249[heading Parameters]
7250[table [[Name][Description]]
7251  [
7252    [`str`
7253    ]
7254    [
7255The string to search for.
7256    ]
7257  ]
7258  [
7259    [`pos`
7260    ]
7261    [
7262The index to start searching at. The default argument for this parameter is `0`.
7263    ]
7264  ]
7265]
7266
7267[endsect]
7268
7269[section:overload3 basic_static_string::find (3 of 5 overloads)]
7270
7271Find the first occurrence of a string within the string.
7272[heading Synopsis]
7273```
7274constexpr size_type
7275find(
7276    const_pointer s,
7277    size_type pos,
7278    size_type n) const;
7279```
7280
7281[heading Description]
7282Finds the first occurrence of the string pointed to by `s` within the string starting at the index `pos`.
7283
7284[heading Complexity]
7285
7286Linear.
7287
7288[heading Remarks]
7289An empty string is always found.
7290[heading Return Value]
7291The lowest index `idx` greater than or equal to `pos` where each element of `{s, s + n)` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx + n) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7292[heading Parameters]
7293[table [[Name][Description]]
7294  [
7295    [`s`
7296    ]
7297    [
7298The string to search for.
7299    ]
7300  ]
7301  [
7302    [`pos`
7303    ]
7304    [
7305The index to start searching at.
7306    ]
7307  ]
7308  [
7309    [`n`
7310    ]
7311    [
7312The length of the string to search for.
7313    ]
7314  ]
7315]
7316
7317[endsect]
7318
7319[section:overload4 basic_static_string::find (4 of 5 overloads)]
7320
7321Find the first occurrence of a string within the string.
7322[heading Synopsis]
7323```
7324constexpr size_type
7325find(
7326    const_pointer s,
7327    size_type pos = 0) const;
7328```
7329
7330[heading Description]
7331Finds the first occurrence of the string pointed to by `s` of length `count` within the string starting at the index `pos`, where `count` is `traits_type::length(s)`.
7332
7333[heading Complexity]
7334
7335Linear.
7336
7337[heading Remarks]
7338An empty string is always found.
7339[heading Return Value]
7340The lowest index `idx` greater than or equal to `pos` where each element of `{s, s + count)` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx + count) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7341[heading Parameters]
7342[table [[Name][Description]]
7343  [
7344    [`s`
7345    ]
7346    [
7347The string to search for.
7348    ]
7349  ]
7350  [
7351    [`pos`
7352    ]
7353    [
7354The index to start searching at. The default argument for this parameter is `0`.
7355    ]
7356  ]
7357]
7358
7359[endsect]
7360
7361[section:overload5 basic_static_string::find (5 of 5 overloads)]
7362
7363Find the first occurrence of a character within the string.
7364[heading Synopsis]
7365```
7366constexpr size_type
7367find(
7368    value_type c,
7369    size_type pos = 0) const;
7370```
7371
7372[heading Description]
7373Finds the first occurrence of `c` within the string starting at the index `pos`.
7374
7375[heading Complexity]
7376
7377Linear.
7378
7379[heading Return Value]
7380The index corrosponding to the first occurrence of `c` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7381[heading Parameters]
7382[table [[Name][Description]]
7383  [
7384    [`c`
7385    ]
7386    [
7387The character to search for.
7388    ]
7389  ]
7390  [
7391    [`pos`
7392    ]
7393    [
7394The index to start searching at. The default argument for this parameter is `0`.
7395    ]
7396  ]
7397]
7398
7399[endsect]
7400
7401
7402[endsect]
7403
7404[section:rfind basic_static_string::rfind]
7405[indexterm2 rfind..basic_static_string]
7406
7407
7408Find the last occurrence of a string within the string.
7409```
7410template<
7411    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
7412constexpr size_type
7413``[link static_string.ref.boost__static_strings__basic_static_string.rfind.overload1 rfind]``(
7414    const T& t,
7415    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7416  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rfind.overload1 `more...`]]``
7417
7418template<
7419    std::size_t M>
7420constexpr size_type
7421``[link static_string.ref.boost__static_strings__basic_static_string.rfind.overload2 rfind]``(
7422    const basic_static_string< M, CharT, Traits >& str,
7423    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7424  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rfind.overload2 `more...`]]``
7425
7426constexpr size_type
7427``[link static_string.ref.boost__static_strings__basic_static_string.rfind.overload3 rfind]``(
7428    const_pointer s,
7429    size_type pos,
7430    size_type n) const;
7431  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rfind.overload3 `more...`]]``
7432
7433constexpr size_type
7434``[link static_string.ref.boost__static_strings__basic_static_string.rfind.overload4 rfind]``(
7435    const_pointer s,
7436    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7437  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rfind.overload4 `more...`]]``
7438```
7439
7440
7441Find the last occurrence of a character within the string.
7442```
7443constexpr size_type
7444``[link static_string.ref.boost__static_strings__basic_static_string.rfind.overload5 rfind]``(
7445    value_type c,
7446    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7447  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rfind.overload5 `more...`]]``
7448```
7449
7450[section:overload1 basic_static_string::rfind (1 of 5 overloads)]
7451
7452Find the last occurrence of a string within the string.
7453[heading Synopsis]
7454```
7455template<
7456    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
7457constexpr size_type
7458rfind(
7459    const T& t,
7460    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7461```
7462
7463[heading Description]
7464Constructs a temporary `string_view_type` object `sv` from `t`, and finds the last occurrence of `sv` within the string starting before or at the index `pos`.
7465
7466[heading Complexity]
7467
7468Linear.
7469
7470[heading Template Parameters]
7471[table [[Type][Description]]
7472  [
7473    [`T`
7474    ]
7475    [
7476The type of the object to convert.
7477    ]
7478  ]
7479]
7480[heading Constraints]
7481
7482`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
7483
7484[heading Return Value]
7485The highest index `idx` less than or equal to `pos` where each element of `{sv.begin(), sv.end())` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx + count) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7486[heading Parameters]
7487[table [[Name][Description]]
7488  [
7489    [`t`
7490    ]
7491    [
7492The string to search for.
7493    ]
7494  ]
7495  [
7496    [`pos`
7497    ]
7498    [
7499The index to start searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
7500    ]
7501  ]
7502]
7503
7504[endsect]
7505
7506[section:overload2 basic_static_string::rfind (2 of 5 overloads)]
7507
7508Find the last occurrence of a string within the string.
7509[heading Synopsis]
7510```
7511template<
7512    std::size_t M>
7513constexpr size_type
7514rfind(
7515    const basic_static_string< M, CharT, Traits >& str,
7516    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7517```
7518
7519[heading Description]
7520Finds the last occurrence of `str` within the string starting before or at the index `pos`.
7521
7522[heading Complexity]
7523
7524Linear.
7525
7526[heading Return Value]
7527The highest index `idx` less than or equal to `pos` where each element of `str` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx + str.size()) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7528[heading Parameters]
7529[table [[Name][Description]]
7530  [
7531    [`str`
7532    ]
7533    [
7534The string to search for.
7535    ]
7536  ]
7537  [
7538    [`pos`
7539    ]
7540    [
7541The index to start searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
7542    ]
7543  ]
7544]
7545
7546[endsect]
7547
7548[section:overload3 basic_static_string::rfind (3 of 5 overloads)]
7549
7550Find the last occurrence of a string within the string.
7551[heading Synopsis]
7552```
7553constexpr size_type
7554rfind(
7555    const_pointer s,
7556    size_type pos,
7557    size_type n) const;
7558```
7559
7560[heading Description]
7561Finds the last occurrence of the string pointed to by `s` within the string starting before or at the index `pos`.
7562
7563[heading Complexity]
7564
7565Linear.
7566
7567[heading Return Value]
7568The highest index `idx` less than or equal to `pos` where each element of `{s, s + n)` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx + n) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7569[heading Parameters]
7570[table [[Name][Description]]
7571  [
7572    [`s`
7573    ]
7574    [
7575The string to search for.
7576    ]
7577  ]
7578  [
7579    [`pos`
7580    ]
7581    [
7582The index to start searching at.
7583    ]
7584  ]
7585  [
7586    [`n`
7587    ]
7588    [
7589The length of the string to search for.
7590    ]
7591  ]
7592]
7593
7594[endsect]
7595
7596[section:overload4 basic_static_string::rfind (4 of 5 overloads)]
7597
7598Find the last occurrence of a string within the string.
7599[heading Synopsis]
7600```
7601constexpr size_type
7602rfind(
7603    const_pointer s,
7604    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7605```
7606
7607[heading Description]
7608Finds the last occurrence of the string pointed to by `s` of length `count` within the string starting before or at the index `pos`, where `count` is `traits_type::length(s)`.
7609
7610[heading Complexity]
7611
7612Linear.
7613
7614[heading Return Value]
7615The highest index `idx` less than or equal to `pos` where each element of `{s, s + count)` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + idx + count) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7616[heading Parameters]
7617[table [[Name][Description]]
7618  [
7619    [`s`
7620    ]
7621    [
7622The string to search for.
7623    ]
7624  ]
7625  [
7626    [`pos`
7627    ]
7628    [
7629The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
7630    ]
7631  ]
7632]
7633
7634[endsect]
7635
7636[section:overload5 basic_static_string::rfind (5 of 5 overloads)]
7637
7638Find the last occurrence of a character within the string.
7639[heading Synopsis]
7640```
7641constexpr size_type
7642rfind(
7643    value_type c,
7644    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7645```
7646
7647[heading Description]
7648Finds the last occurrence of `c` within the string starting before or at the index `pos`.
7649
7650[heading Complexity]
7651
7652Linear.
7653
7654[heading Return Value]
7655The index corrosponding to the last occurrence of `c` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7656[heading Parameters]
7657[table [[Name][Description]]
7658  [
7659    [`c`
7660    ]
7661    [
7662The character to search for.
7663    ]
7664  ]
7665  [
7666    [`pos`
7667    ]
7668    [
7669The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
7670    ]
7671  ]
7672]
7673
7674[endsect]
7675
7676
7677[endsect]
7678
7679[section:find_first_of basic_static_string::find_first_of]
7680[indexterm2 find_first_of..basic_static_string]
7681
7682
7683Find the first occurrence of any of the characters within the string.
7684```
7685template<
7686    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
7687constexpr size_type
7688``[link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload1 find_first_of]``(
7689    const T& t,
7690    size_type pos = 0) const;
7691  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload1 `more...`]]``
7692
7693template<
7694    std::size_t M>
7695constexpr size_type
7696``[link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload2 find_first_of]``(
7697    const basic_static_string< M, CharT, Traits >& str,
7698    size_type pos = 0) const;
7699  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload2 `more...`]]``
7700
7701constexpr size_type
7702``[link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload3 find_first_of]``(
7703    const_pointer s,
7704    size_type pos,
7705    size_type n) const;
7706  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload3 `more...`]]``
7707
7708constexpr size_type
7709``[link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload4 find_first_of]``(
7710    const_pointer s,
7711    size_type pos = 0) const;
7712  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload4 `more...`]]``
7713```
7714
7715
7716Find the first occurrence of a character within the string.
7717```
7718constexpr size_type
7719``[link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload5 find_first_of]``(
7720    value_type c,
7721    size_type pos = 0) const;
7722  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload5 `more...`]]``
7723```
7724
7725[section:overload1 basic_static_string::find_first_of (1 of 5 overloads)]
7726
7727Find the first occurrence of any of the characters within the string.
7728[heading Synopsis]
7729```
7730template<
7731    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
7732constexpr size_type
7733find_first_of(
7734    const T& t,
7735    size_type pos = 0) const;
7736```
7737
7738[heading Description]
7739Constructs a temporary `string_view_type` object `sv` from `t`, and finds the first occurrence of any of the characters in `sv` within the string starting at the index `pos`.
7740
7741[heading Complexity]
7742
7743Linear.
7744
7745[heading Template Parameters]
7746[table [[Type][Description]]
7747  [
7748    [`T`
7749    ]
7750    [
7751The type of the object to convert.
7752    ]
7753  ]
7754]
7755[heading Constraints]
7756
7757`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
7758
7759[heading Return Value]
7760The index corrosponding to the first occurrence of any of the characters in `{sv.begin(), sv.end())` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7761[heading Parameters]
7762[table [[Name][Description]]
7763  [
7764    [`t`
7765    ]
7766    [
7767The characters to search for.
7768    ]
7769  ]
7770  [
7771    [`pos`
7772    ]
7773    [
7774The index to start searching at. The default argument for this parameter is `0`.
7775    ]
7776  ]
7777]
7778
7779[endsect]
7780
7781[section:overload2 basic_static_string::find_first_of (2 of 5 overloads)]
7782
7783Find the first occurrence of any of the characters within the string.
7784[heading Synopsis]
7785```
7786template<
7787    std::size_t M>
7788constexpr size_type
7789find_first_of(
7790    const basic_static_string< M, CharT, Traits >& str,
7791    size_type pos = 0) const;
7792```
7793
7794[heading Description]
7795Finds the first occurrence of any of the characters within `str` within the string starting at the index `pos`.
7796
7797[heading Complexity]
7798
7799Linear.
7800
7801[heading Return Value]
7802The index corrosponding to the first occurrence of any of the characters of `str` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7803[heading Parameters]
7804[table [[Name][Description]]
7805  [
7806    [`str`
7807    ]
7808    [
7809The characters to search for.
7810    ]
7811  ]
7812  [
7813    [`pos`
7814    ]
7815    [
7816The index to start searching at. The default argument for this parameter is `0`.
7817    ]
7818  ]
7819]
7820
7821[endsect]
7822
7823[section:overload3 basic_static_string::find_first_of (3 of 5 overloads)]
7824
7825Find the first occurrence of any of the characters within the string.
7826[heading Synopsis]
7827```
7828constexpr size_type
7829find_first_of(
7830    const_pointer s,
7831    size_type pos,
7832    size_type n) const;
7833```
7834
7835[heading Description]
7836Finds the first occurrence of any of the characters within the string pointed to by `s` within the string starting at the index `pos`.
7837
7838[heading Complexity]
7839
7840Linear.
7841
7842[heading Return Value]
7843The index corrosponding to the first occurrence of any of the characters in `{s, s + n)` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7844[heading Parameters]
7845[table [[Name][Description]]
7846  [
7847    [`s`
7848    ]
7849    [
7850The characters to search for.
7851    ]
7852  ]
7853  [
7854    [`pos`
7855    ]
7856    [
7857The index to start searching at.
7858    ]
7859  ]
7860  [
7861    [`n`
7862    ]
7863    [
7864The length of the string to search for.
7865    ]
7866  ]
7867]
7868
7869[endsect]
7870
7871[section:overload4 basic_static_string::find_first_of (4 of 5 overloads)]
7872
7873Find the first occurrence of any of the characters within the string.
7874[heading Synopsis]
7875```
7876constexpr size_type
7877find_first_of(
7878    const_pointer s,
7879    size_type pos = 0) const;
7880```
7881
7882[heading Description]
7883Finds the first occurrence of the any of the characters within string pointed to by `s` of length `count` within the string starting at the index `pos`, where `count` is `traits_type::length(s)`.
7884
7885[heading Complexity]
7886
7887Linear.
7888
7889[heading Return Value]
7890The index corrosponding to the first occurrence of any of the characters in `{s, s + count)` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7891[heading Parameters]
7892[table [[Name][Description]]
7893  [
7894    [`s`
7895    ]
7896    [
7897The characters to search for.
7898    ]
7899  ]
7900  [
7901    [`pos`
7902    ]
7903    [
7904The index to start searching at. The default argument for this parameter is `0`.
7905    ]
7906  ]
7907]
7908
7909[endsect]
7910
7911[section:overload5 basic_static_string::find_first_of (5 of 5 overloads)]
7912
7913Find the first occurrence of a character within the string.
7914[heading Synopsis]
7915```
7916constexpr size_type
7917find_first_of(
7918    value_type c,
7919    size_type pos = 0) const;
7920```
7921
7922[heading Description]
7923Finds the first occurrence of `c` within the string starting at the index `pos`.
7924
7925[heading Complexity]
7926
7927Linear.
7928
7929[heading Return Value]
7930The index corrosponding to the first occurrence of `c` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
7931[heading Parameters]
7932[table [[Name][Description]]
7933  [
7934    [`c`
7935    ]
7936    [
7937The character to search for.
7938    ]
7939  ]
7940  [
7941    [`pos`
7942    ]
7943    [
7944The index to start searching at. The default argument for this parameter is `0`.
7945    ]
7946  ]
7947]
7948
7949[endsect]
7950
7951
7952[endsect]
7953
7954[section:find_last_of basic_static_string::find_last_of]
7955[indexterm2 find_last_of..basic_static_string]
7956
7957
7958Find the last occurrence of any of the characters within the string.
7959```
7960template<
7961    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
7962constexpr size_type
7963``[link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload1 find_last_of]``(
7964    const T& t,
7965    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7966  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload1 `more...`]]``
7967
7968template<
7969    std::size_t M>
7970constexpr size_type
7971``[link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload2 find_last_of]``(
7972    const basic_static_string< M, CharT, Traits >& str,
7973    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7974  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload2 `more...`]]``
7975
7976constexpr size_type
7977``[link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload3 find_last_of]``(
7978    const_pointer s,
7979    size_type pos,
7980    size_type n) const;
7981  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload3 `more...`]]``
7982
7983constexpr size_type
7984``[link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload4 find_last_of]``(
7985    const_pointer s,
7986    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7987  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload4 `more...`]]``
7988```
7989
7990
7991Find the last occurrence of a character within the string.
7992```
7993constexpr size_type
7994``[link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload5 find_last_of]``(
7995    value_type c,
7996    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
7997  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload5 `more...`]]``
7998```
7999
8000[section:overload1 basic_static_string::find_last_of (1 of 5 overloads)]
8001
8002Find the last occurrence of any of the characters within the string.
8003[heading Synopsis]
8004```
8005template<
8006    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
8007constexpr size_type
8008find_last_of(
8009    const T& t,
8010    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8011```
8012
8013[heading Description]
8014Constructs a temporary `string_view_type` object `sv` from `t`, and finds the last occurrence of any of the characters in `sv` within the string before or at the index `pos`.
8015
8016[heading Complexity]
8017
8018Linear.
8019
8020[heading Template Parameters]
8021[table [[Type][Description]]
8022  [
8023    [`T`
8024    ]
8025    [
8026The type of the object to convert.
8027    ]
8028  ]
8029]
8030[heading Constraints]
8031
8032`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
8033
8034[heading Return Value]
8035The index corrosponding to the last occurrence of any of the characters in `{sv.begin(), sv.end())` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8036[heading Parameters]
8037[table [[Name][Description]]
8038  [
8039    [`t`
8040    ]
8041    [
8042The characters to search for.
8043    ]
8044  ]
8045  [
8046    [`pos`
8047    ]
8048    [
8049The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
8050    ]
8051  ]
8052]
8053
8054[endsect]
8055
8056[section:overload2 basic_static_string::find_last_of (2 of 5 overloads)]
8057
8058Find the last occurrence of any of the characters within the string.
8059[heading Synopsis]
8060```
8061template<
8062    std::size_t M>
8063constexpr size_type
8064find_last_of(
8065    const basic_static_string< M, CharT, Traits >& str,
8066    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8067```
8068
8069[heading Description]
8070Finds the last occurrence of any of the characters within `str` within the string starting before or at the index `pos`.
8071
8072[heading Complexity]
8073
8074Linear.
8075
8076[heading Return Value]
8077The index corrosponding to the last occurrence of any of the characters of `str` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8078[heading Parameters]
8079[table [[Name][Description]]
8080  [
8081    [`str`
8082    ]
8083    [
8084The characters to search for.
8085    ]
8086  ]
8087  [
8088    [`pos`
8089    ]
8090    [
8091The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
8092    ]
8093  ]
8094]
8095
8096[endsect]
8097
8098[section:overload3 basic_static_string::find_last_of (3 of 5 overloads)]
8099
8100Find the last occurrence of any of the characters within the string.
8101[heading Synopsis]
8102```
8103constexpr size_type
8104find_last_of(
8105    const_pointer s,
8106    size_type pos,
8107    size_type n) const;
8108```
8109
8110[heading Description]
8111Finds the last occurrence of any of the characters within the string pointed to by `s` within the string before or at the index `pos`.
8112
8113[heading Complexity]
8114
8115Linear.
8116
8117[heading Return Value]
8118The index corrosponding to the last occurrence of any of the characters in `{s, s + n)` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8119[heading Parameters]
8120[table [[Name][Description]]
8121  [
8122    [`s`
8123    ]
8124    [
8125The characters to search for.
8126    ]
8127  ]
8128  [
8129    [`pos`
8130    ]
8131    [
8132The index to stop searching at.
8133    ]
8134  ]
8135  [
8136    [`n`
8137    ]
8138    [
8139The length of the string to search for.
8140    ]
8141  ]
8142]
8143
8144[endsect]
8145
8146[section:overload4 basic_static_string::find_last_of (4 of 5 overloads)]
8147
8148Find the last occurrence of any of the characters within the string.
8149[heading Synopsis]
8150```
8151constexpr size_type
8152find_last_of(
8153    const_pointer s,
8154    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8155```
8156
8157[heading Description]
8158Finds the last occurrence of any of the characters within the string pointed to by `s` of length `count` within the string before or at the index `pos`, where `count` is `traits_type::length(s)`.
8159
8160[heading Complexity]
8161
8162Linear.
8163
8164[heading Return Value]
8165The index corrosponding to the last occurrence of any of the characters in `{s, s + count)` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8166[heading Parameters]
8167[table [[Name][Description]]
8168  [
8169    [`s`
8170    ]
8171    [
8172The characters to search for.
8173    ]
8174  ]
8175  [
8176    [`pos`
8177    ]
8178    [
8179The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
8180    ]
8181  ]
8182]
8183
8184[endsect]
8185
8186[section:overload5 basic_static_string::find_last_of (5 of 5 overloads)]
8187
8188Find the last occurrence of a character within the string.
8189[heading Synopsis]
8190```
8191constexpr size_type
8192find_last_of(
8193    value_type c,
8194    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8195```
8196
8197[heading Description]
8198Finds the last occurrence of `c` within the string before or at the index `pos`.
8199
8200[heading Complexity]
8201
8202Linear.
8203
8204[heading Return Value]
8205The index corrosponding to the last occurrence of `c` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8206[heading Parameters]
8207[table [[Name][Description]]
8208  [
8209    [`c`
8210    ]
8211    [
8212The character to search for.
8213    ]
8214  ]
8215  [
8216    [`pos`
8217    ]
8218    [
8219The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
8220    ]
8221  ]
8222]
8223
8224[endsect]
8225
8226
8227[endsect]
8228
8229[section:find_first_not_of basic_static_string::find_first_not_of]
8230[indexterm2 find_first_not_of..basic_static_string]
8231
8232
8233Find the first occurrence of a character not within the string.
8234```
8235template<
8236    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
8237constexpr size_type
8238``[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload1 find_first_not_of]``(
8239    const T& t,
8240    size_type pos = 0) const;
8241  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload1 `more...`]]``
8242```
8243
8244
8245Find the first occurrence of any of the characters not within the string.
8246```
8247template<
8248    std::size_t M>
8249constexpr size_type
8250``[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload2 find_first_not_of]``(
8251    const basic_static_string< M, CharT, Traits >& str,
8252    size_type pos = 0) const;
8253  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload2 `more...`]]``
8254
8255constexpr size_type
8256``[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload3 find_first_not_of]``(
8257    const_pointer s,
8258    size_type pos,
8259    size_type n) const;
8260  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload3 `more...`]]``
8261
8262constexpr size_type
8263``[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload4 find_first_not_of]``(
8264    const_pointer s,
8265    size_type pos = 0) const;
8266  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload4 `more...`]]``
8267```
8268
8269
8270Find the first occurrence of a character not equal to `c`.
8271```
8272constexpr size_type
8273``[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload5 find_first_not_of]``(
8274    value_type c,
8275    size_type pos = 0) const;
8276  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload5 `more...`]]``
8277```
8278
8279[section:overload1 basic_static_string::find_first_not_of (1 of 5 overloads)]
8280
8281Find the first occurrence of a character not within the string.
8282[heading Synopsis]
8283```
8284template<
8285    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
8286constexpr size_type
8287find_first_not_of(
8288    const T& t,
8289    size_type pos = 0) const;
8290```
8291
8292[heading Description]
8293Constructs a temporary `string_view_type` object `sv` from `t`, and finds the first character that is not within `sv`, starting at the index `pos`.
8294
8295[heading Complexity]
8296
8297Linear.
8298
8299[heading Template Parameters]
8300[table [[Type][Description]]
8301  [
8302    [`T`
8303    ]
8304    [
8305The type of the object to convert.
8306    ]
8307  ]
8308]
8309[heading Constraints]
8310
8311`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
8312
8313[heading Return Value]
8314The index corrosponding to the first occurrence of a character that is not in `{sv.begin(), sv.end())` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8315[heading Parameters]
8316[table [[Name][Description]]
8317  [
8318    [`t`
8319    ]
8320    [
8321The characters to ignore.
8322    ]
8323  ]
8324  [
8325    [`pos`
8326    ]
8327    [
8328The index to start searching at. The default argument for this parameter is `0`.
8329    ]
8330  ]
8331]
8332
8333[endsect]
8334
8335[section:overload2 basic_static_string::find_first_not_of (2 of 5 overloads)]
8336
8337Find the first occurrence of any of the characters not within the string.
8338[heading Synopsis]
8339```
8340template<
8341    std::size_t M>
8342constexpr size_type
8343find_first_not_of(
8344    const basic_static_string< M, CharT, Traits >& str,
8345    size_type pos = 0) const;
8346```
8347
8348[heading Description]
8349Finds the first occurrence of a character that is not within `str` within the string starting at the index `pos`.
8350
8351[heading Complexity]
8352
8353Linear.
8354
8355[heading Return Value]
8356The index corrosponding to the first character of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`]) that is not within `str` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8357[heading Parameters]
8358[table [[Name][Description]]
8359  [
8360    [`str`
8361    ]
8362    [
8363The characters to ignore.
8364    ]
8365  ]
8366  [
8367    [`pos`
8368    ]
8369    [
8370The index to start searching at. The default argument for this parameter is `0`.
8371    ]
8372  ]
8373]
8374
8375[endsect]
8376
8377[section:overload3 basic_static_string::find_first_not_of (3 of 5 overloads)]
8378
8379Find the first occurrence of any of the characters not within the string.
8380[heading Synopsis]
8381```
8382constexpr size_type
8383find_first_not_of(
8384    const_pointer s,
8385    size_type pos,
8386    size_type n) const;
8387```
8388
8389[heading Description]
8390Finds the first occurrence of a character that is not within the string pointed to by `s` within the string starting at the index `pos`.
8391
8392[heading Complexity]
8393
8394Linear.
8395
8396[heading Return Value]
8397The index corrosponding to the first character of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`]) that is not within `{s, s + n)` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8398[heading Parameters]
8399[table [[Name][Description]]
8400  [
8401    [`s`
8402    ]
8403    [
8404The characters to ignore.
8405    ]
8406  ]
8407  [
8408    [`pos`
8409    ]
8410    [
8411The index to start searching at. The default argument for this parameter is `0`.
8412    ]
8413  ]
8414  [
8415    [`n`
8416    ]
8417    [
8418The length of the characters to ignore.
8419    ]
8420  ]
8421]
8422
8423[endsect]
8424
8425[section:overload4 basic_static_string::find_first_not_of (4 of 5 overloads)]
8426
8427Find the first occurrence of any of the characters not within the string.
8428[heading Synopsis]
8429```
8430constexpr size_type
8431find_first_not_of(
8432    const_pointer s,
8433    size_type pos = 0) const;
8434```
8435
8436[heading Description]
8437Finds the first occurrence of a character that is not within the string pointed to by `s` of length `count` within the string starting at the index `pos`, where `count` is `traits_type::length(s)`.
8438
8439[heading Complexity]
8440
8441Linear.
8442
8443[heading Return Value]
8444The index corrosponding to the first character of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`]) that is not within `{s, s + count)` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8445[heading Parameters]
8446[table [[Name][Description]]
8447  [
8448    [`s`
8449    ]
8450    [
8451The characters to ignore.
8452    ]
8453  ]
8454  [
8455    [`pos`
8456    ]
8457    [
8458The index to start searching at. The default argument for this parameter is `0`.
8459    ]
8460  ]
8461]
8462
8463[endsect]
8464
8465[section:overload5 basic_static_string::find_first_not_of (5 of 5 overloads)]
8466
8467Find the first occurrence of a character not equal to `c`.
8468[heading Synopsis]
8469```
8470constexpr size_type
8471find_first_not_of(
8472    value_type c,
8473    size_type pos = 0) const;
8474```
8475
8476[heading Description]
8477Finds the first occurrence of a character that is not equal to `c`.
8478
8479[heading Complexity]
8480
8481Linear.
8482
8483[heading Return Value]
8484The index corrosponding to the first character of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `end()`]) that is not equal to `c` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8485[heading Parameters]
8486[table [[Name][Description]]
8487  [
8488    [`c`
8489    ]
8490    [
8491The character to ignore.
8492    ]
8493  ]
8494  [
8495    [`pos`
8496    ]
8497    [
8498The index to start searching at. The default argument for this parameter is `0`.
8499    ]
8500  ]
8501]
8502
8503[endsect]
8504
8505
8506[endsect]
8507
8508[section:find_last_not_of basic_static_string::find_last_not_of]
8509[indexterm2 find_last_not_of..basic_static_string]
8510
8511
8512Find the last occurrence of a character not within the string.
8513```
8514template<
8515    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
8516constexpr size_type
8517``[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload1 find_last_not_of]``(
8518    const T& t,
8519    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8520  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload1 `more...`]]``
8521
8522template<
8523    size_t M>
8524constexpr size_type
8525``[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload2 find_last_not_of]``(
8526    const basic_static_string< M, CharT, Traits >& str,
8527    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8528  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload2 `more...`]]``
8529
8530constexpr size_type
8531``[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload3 find_last_not_of]``(
8532    const_pointer s,
8533    size_type pos,
8534    size_type n) const;
8535  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload3 `more...`]]``
8536
8537constexpr size_type
8538``[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload4 find_last_not_of]``(
8539    const_pointer s,
8540    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8541  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload4 `more...`]]``
8542```
8543
8544
8545Find the last occurrence of a character not equal to `c`.
8546```
8547constexpr size_type
8548``[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload5 find_last_not_of]``(
8549    value_type c,
8550    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8551  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload5 `more...`]]``
8552```
8553
8554[section:overload1 basic_static_string::find_last_not_of (1 of 5 overloads)]
8555
8556Find the last occurrence of a character not within the string.
8557[heading Synopsis]
8558```
8559template<
8560    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
8561constexpr size_type
8562find_last_not_of(
8563    const T& t,
8564    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8565```
8566
8567[heading Description]
8568Constructs a temporary `string_view_type` object `sv` from `t`, and finds the last character that is not within `sv`, starting at the index `pos`.
8569
8570[heading Complexity]
8571
8572Linear.
8573
8574[heading Template Parameters]
8575[table [[Type][Description]]
8576  [
8577    [`T`
8578    ]
8579    [
8580The type of the object to convert.
8581    ]
8582  ]
8583]
8584[heading Constraints]
8585
8586`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
8587
8588[heading Return Value]
8589The index corrosponding to the last occurrence of a character that is not in `{sv.begin(), sv.end())` within {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8590[heading Parameters]
8591[table [[Name][Description]]
8592  [
8593    [`t`
8594    ]
8595    [
8596The characters to ignore.
8597    ]
8598  ]
8599  [
8600    [`pos`
8601    ]
8602    [
8603The index to start searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
8604    ]
8605  ]
8606]
8607
8608[endsect]
8609
8610[section:overload2 basic_static_string::find_last_not_of (2 of 5 overloads)]
8611
8612Find the last occurrence of a character not within the string.
8613[heading Synopsis]
8614```
8615template<
8616    size_t M>
8617constexpr size_type
8618find_last_not_of(
8619    const basic_static_string< M, CharT, Traits >& str,
8620    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8621```
8622
8623[heading Description]
8624Finds the last occurrence of a character that is not within `str` within the string before or at the index `pos`.
8625
8626[heading Complexity]
8627
8628Linear.
8629
8630[heading Return Value]
8631The index corrosponding to the last character of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos} that is not within `str` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8632[heading Parameters]
8633[table [[Name][Description]]
8634  [
8635    [`str`
8636    ]
8637    [
8638The characters to ignore.
8639    ]
8640  ]
8641  [
8642    [`pos`
8643    ]
8644    [
8645The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
8646    ]
8647  ]
8648]
8649
8650[endsect]
8651
8652[section:overload3 basic_static_string::find_last_not_of (3 of 5 overloads)]
8653
8654Find the last occurrence of a character not within the string.
8655[heading Synopsis]
8656```
8657constexpr size_type
8658find_last_not_of(
8659    const_pointer s,
8660    size_type pos,
8661    size_type n) const;
8662```
8663
8664[heading Description]
8665Finds the last occurrence of a character that is not within the string pointed to by `s` within the string before or at the index `pos`.
8666
8667[heading Complexity]
8668
8669Linear.
8670
8671[heading Return Value]
8672The index corrosponding to the last character of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos} that is not within `{s, s + n)` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8673[heading Parameters]
8674[table [[Name][Description]]
8675  [
8676    [`s`
8677    ]
8678    [
8679The characters to ignore.
8680    ]
8681  ]
8682  [
8683    [`pos`
8684    ]
8685    [
8686The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
8687    ]
8688  ]
8689  [
8690    [`n`
8691    ]
8692    [
8693The length of the characters to ignore.
8694    ]
8695  ]
8696]
8697
8698[endsect]
8699
8700[section:overload4 basic_static_string::find_last_not_of (4 of 5 overloads)]
8701
8702Find the last occurrence of a character not within the string.
8703[heading Synopsis]
8704```
8705constexpr size_type
8706find_last_not_of(
8707    const_pointer s,
8708    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8709```
8710
8711[heading Description]
8712Finds the last occurrence of a character that is not within the string pointed to by `s` of length `count` within the string before or at the index `pos`, where `count` is `traits_type::length(s)`.
8713
8714[heading Complexity]
8715
8716Linear.
8717
8718[heading Return Value]
8719The index corrosponding to the last character of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos} that is not within `{s, s + count)` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8720[heading Parameters]
8721[table [[Name][Description]]
8722  [
8723    [`s`
8724    ]
8725    [
8726The characters to ignore.
8727    ]
8728  ]
8729  [
8730    [`pos`
8731    ]
8732    [
8733The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
8734    ]
8735  ]
8736]
8737
8738[endsect]
8739
8740[section:overload5 basic_static_string::find_last_not_of (5 of 5 overloads)]
8741
8742Find the last occurrence of a character not equal to `c`.
8743[heading Synopsis]
8744```
8745constexpr size_type
8746find_last_not_of(
8747    value_type c,
8748    size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
8749```
8750
8751[heading Description]
8752Finds the last occurrence of a character that is not equal to `c` before or at the index `pos`.
8753
8754[heading Complexity]
8755
8756Linear.
8757
8758[heading Return Value]
8759The index corrosponding to the last character of {[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `begin()`] + pos} that is not equal to `c` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
8760[heading Parameters]
8761[table [[Name][Description]]
8762  [
8763    [`c`
8764    ]
8765    [
8766The character to ignore.
8767    ]
8768  ]
8769  [
8770    [`pos`
8771    ]
8772    [
8773The index to start searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
8774    ]
8775  ]
8776]
8777
8778[endsect]
8779
8780
8781[endsect]
8782
8783[section:starts_with basic_static_string::starts_with]
8784[indexterm2 starts_with..basic_static_string]
8785
8786
8787Return whether the string begins with a string.
8788```
8789constexpr bool
8790``[link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload1 starts_with]``(
8791    string_view_type s) const;
8792  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload1 `more...`]]``
8793```
8794
8795
8796Return whether the string begins with a character.
8797```
8798constexpr bool
8799``[link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload2 starts_with]``(
8800    value_type c) const;
8801  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload2 `more...`]]``
8802
8803constexpr bool
8804``[link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload3 starts_with]``(
8805    const_pointer s) const;
8806  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload3 `more...`]]``
8807```
8808
8809[section:overload1 basic_static_string::starts_with (1 of 3 overloads)]
8810
8811Return whether the string begins with a string.
8812[heading Synopsis]
8813```
8814constexpr bool
8815starts_with(
8816    string_view_type s) const;
8817```
8818
8819[heading Description]
8820Returns `true` if the string begins with `s`, and `false` otherwise.
8821
8822[heading Complexity]
8823
8824Linear.
8825
8826[heading Parameters]
8827[table [[Name][Description]]
8828  [
8829    [`s`
8830    ]
8831    [
8832The string view to check for.
8833    ]
8834  ]
8835]
8836
8837[endsect]
8838
8839[section:overload2 basic_static_string::starts_with (2 of 3 overloads)]
8840
8841Return whether the string begins with a character.
8842[heading Synopsis]
8843```
8844constexpr bool
8845starts_with(
8846    value_type c) const;
8847```
8848
8849[heading Description]
8850Returns `true` if the string begins with `c`, and `false` otherwise.
8851
8852[heading Complexity]
8853
8854Constant.
8855
8856[heading Parameters]
8857[table [[Name][Description]]
8858  [
8859    [`c`
8860    ]
8861    [
8862The character to check for.
8863    ]
8864  ]
8865]
8866
8867[endsect]
8868
8869[section:overload3 basic_static_string::starts_with (3 of 3 overloads)]
8870
8871Return whether the string begins with a string.
8872[heading Synopsis]
8873```
8874constexpr bool
8875starts_with(
8876    const_pointer s) const;
8877```
8878
8879[heading Description]
8880Returns `true` if the string begins with the string pointed to be `s` of length `traits_type::length(s)`, and `false` otherwise.
8881
8882[heading Complexity]
8883
8884Linear.
8885
8886[heading Parameters]
8887[table [[Name][Description]]
8888  [
8889    [`s`
8890    ]
8891    [
8892The string to check for.
8893    ]
8894  ]
8895]
8896
8897[endsect]
8898
8899
8900[endsect]
8901
8902[section:ends_with basic_static_string::ends_with]
8903[indexterm2 ends_with..basic_static_string]
8904
8905
8906Return whether the string ends with a string.
8907```
8908constexpr bool
8909``[link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload1 ends_with]``(
8910    string_view_type s) const;
8911  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload1 `more...`]]``
8912```
8913
8914
8915Return whether the string ends with a character.
8916```
8917constexpr bool
8918``[link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload2 ends_with]``(
8919    value_type c) const;
8920  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload2 `more...`]]``
8921
8922constexpr bool
8923``[link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload3 ends_with]``(
8924    const_pointer s) const;
8925  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload3 `more...`]]``
8926```
8927
8928[section:overload1 basic_static_string::ends_with (1 of 3 overloads)]
8929
8930Return whether the string ends with a string.
8931[heading Synopsis]
8932```
8933constexpr bool
8934ends_with(
8935    string_view_type s) const;
8936```
8937
8938[heading Description]
8939Returns `true` if the string ends with `s`, and `false` otherwise.
8940
8941[heading Complexity]
8942
8943Linear.
8944
8945[heading Parameters]
8946[table [[Name][Description]]
8947  [
8948    [`s`
8949    ]
8950    [
8951The string view to check for.
8952    ]
8953  ]
8954]
8955
8956[endsect]
8957
8958[section:overload2 basic_static_string::ends_with (2 of 3 overloads)]
8959
8960Return whether the string ends with a character.
8961[heading Synopsis]
8962```
8963constexpr bool
8964ends_with(
8965    value_type c) const;
8966```
8967
8968[heading Description]
8969Returns `true` if the string ends with `c`, and `false` otherwise.
8970
8971[heading Complexity]
8972
8973Constant.
8974
8975[heading Parameters]
8976[table [[Name][Description]]
8977  [
8978    [`c`
8979    ]
8980    [
8981The character to check for.
8982    ]
8983  ]
8984]
8985
8986[endsect]
8987
8988[section:overload3 basic_static_string::ends_with (3 of 3 overloads)]
8989
8990Return whether the string ends with a string.
8991[heading Synopsis]
8992```
8993constexpr bool
8994ends_with(
8995    const_pointer s) const;
8996```
8997
8998[heading Description]
8999Returns `true` if the string ends with the string pointed to be `s` of length `traits_type::length(s)`, and `false` otherwise.
9000
9001[heading Complexity]
9002
9003Linear.
9004
9005[heading Parameters]
9006[table [[Name][Description]]
9007  [
9008    [`s`
9009    ]
9010    [
9011The string to check for.
9012    ]
9013  ]
9014]
9015
9016[endsect]
9017
9018
9019[endsect]
9020
9021
9022[endsect]
9023
9024[section:std__hash_lt__basic_static_string__gt_ std::hash< basic_static_string >]
9025
9026[heading Synopsis]
9027Defined in header [include_file boost/static_string/static_string.hpp]
9028
9029```
9030template<
9031    std::size_t N,
9032    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9033    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9034struct hash< basic_static_string >
9035```
9036
9037[heading Member Functions]
9038[table [[Name][Description]]
9039  [
9040    [[*[link static_string.ref.std__hash_lt__basic_static_string__gt_.operator_lp__rp_ operator()]]
9041    ]
9042    [
9043
9044    ]
9045  ]
9046]
9047[heading Description]
9048
9049[section:operator_lp__rp_ std::hash< basic_static_string >::operator()]
9050[indexterm2 operator()..std::hash< basic_static_string >]
9051
9052
9053[heading Synopsis]
9054```
9055std::size_t
9056operator()(
9057    const boost::static_strings::basic_static_string< N, CharT, Traits >& str) const;
9058```
9059
9060[heading Description]
9061
9062[endsect]
9063
9064
9065[endsect]
9066
9067[section:boost__static_strings__basic_string_view basic_string_view]
9068[indexterm1 basic_string_view]
9069
9070
9071The type of `basic_string_view` used by the library.
9072[heading Synopsis]
9073Defined in header [include_file boost/static_string/config.hpp]
9074
9075```
9076template<
9077    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9078    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9079using basic_string_view = #ifndef BOOST_STATIC_STRING_STANDALONE boost::basic_string_view< CharT, Traits >;
9080```
9081
9082[heading Description]
9083
9084
9085[endsect]
9086
9087[section:boost__static_strings__operator_eq__eq_ operator==]
9088[indexterm1 operator==]
9089
9090
9091```
9092template<
9093    std::size_t N,
9094    std::size_t M,
9095    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9096    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9097constexpr bool
9098``[link static_string.ref.boost__static_strings__operator_eq__eq_.overload1 operator==]``(
9099    const basic_static_string< N, CharT, Traits >& lhs,
9100    const basic_static_string< M, CharT, Traits >& rhs);
9101  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_eq__eq_.overload1 `more...`]]``
9102
9103template<
9104    std::size_t N,
9105    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9106    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9107constexpr bool
9108``[link static_string.ref.boost__static_strings__operator_eq__eq_.overload2 operator==]``(
9109    const CharT* lhs,
9110    const basic_static_string< N, CharT, Traits >& rhs);
9111  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_eq__eq_.overload2 `more...`]]``
9112
9113template<
9114    std::size_t N,
9115    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9116    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9117constexpr bool
9118``[link static_string.ref.boost__static_strings__operator_eq__eq_.overload3 operator==]``(
9119    const basic_static_string< N, CharT, Traits >& lhs,
9120    const CharT* rhs);
9121  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_eq__eq_.overload3 `more...`]]``
9122```
9123
9124[section:overload1 operator== (1 of 3 overloads)]
9125
9126[heading Synopsis]
9127Defined in header [include_file boost/static_string/static_string.hpp]
9128
9129```
9130template<
9131    std::size_t N,
9132    std::size_t M,
9133    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9134    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9135constexpr bool
9136operator==(
9137    const basic_static_string< N, CharT, Traits >& lhs,
9138    const basic_static_string< M, CharT, Traits >& rhs);
9139```
9140
9141[heading Description]
9142
9143
9144[endsect]
9145
9146[section:overload2 operator== (2 of 3 overloads)]
9147
9148[heading Synopsis]
9149Defined in header [include_file boost/static_string/static_string.hpp]
9150
9151```
9152template<
9153    std::size_t N,
9154    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9155    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9156constexpr bool
9157operator==(
9158    const CharT* lhs,
9159    const basic_static_string< N, CharT, Traits >& rhs);
9160```
9161
9162[heading Description]
9163
9164
9165[endsect]
9166
9167[section:overload3 operator== (3 of 3 overloads)]
9168
9169[heading Synopsis]
9170Defined in header [include_file boost/static_string/static_string.hpp]
9171
9172```
9173template<
9174    std::size_t N,
9175    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9176    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9177constexpr bool
9178operator==(
9179    const basic_static_string< N, CharT, Traits >& lhs,
9180    const CharT* rhs);
9181```
9182
9183[heading Description]
9184
9185
9186[endsect]
9187
9188
9189[endsect]
9190
9191[section:boost__static_strings__operator_not__eq_ operator!=]
9192[indexterm1 operator!=]
9193
9194
9195```
9196template<
9197    std::size_t N,
9198    std::size_t M,
9199    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9200    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9201constexpr bool
9202``[link static_string.ref.boost__static_strings__operator_not__eq_.overload1 operator!=]``(
9203    const basic_static_string< N, CharT, Traits >& lhs,
9204    const basic_static_string< M, CharT, Traits >& rhs);
9205  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_not__eq_.overload1 `more...`]]``
9206
9207template<
9208    std::size_t N,
9209    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9210    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9211constexpr bool
9212``[link static_string.ref.boost__static_strings__operator_not__eq_.overload2 operator!=]``(
9213    const CharT* lhs,
9214    const basic_static_string< N, CharT, Traits >& rhs);
9215  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_not__eq_.overload2 `more...`]]``
9216
9217template<
9218    std::size_t N,
9219    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9220    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9221constexpr bool
9222``[link static_string.ref.boost__static_strings__operator_not__eq_.overload3 operator!=]``(
9223    const basic_static_string< N, CharT, Traits >& lhs,
9224    const CharT* rhs);
9225  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_not__eq_.overload3 `more...`]]``
9226```
9227
9228[section:overload1 operator!= (1 of 3 overloads)]
9229
9230[heading Synopsis]
9231Defined in header [include_file boost/static_string/static_string.hpp]
9232
9233```
9234template<
9235    std::size_t N,
9236    std::size_t M,
9237    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9238    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9239constexpr bool
9240operator!=(
9241    const basic_static_string< N, CharT, Traits >& lhs,
9242    const basic_static_string< M, CharT, Traits >& rhs);
9243```
9244
9245[heading Description]
9246
9247
9248[endsect]
9249
9250[section:overload2 operator!= (2 of 3 overloads)]
9251
9252[heading Synopsis]
9253Defined in header [include_file boost/static_string/static_string.hpp]
9254
9255```
9256template<
9257    std::size_t N,
9258    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9259    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9260constexpr bool
9261operator!=(
9262    const CharT* lhs,
9263    const basic_static_string< N, CharT, Traits >& rhs);
9264```
9265
9266[heading Description]
9267
9268
9269[endsect]
9270
9271[section:overload3 operator!= (3 of 3 overloads)]
9272
9273[heading Synopsis]
9274Defined in header [include_file boost/static_string/static_string.hpp]
9275
9276```
9277template<
9278    std::size_t N,
9279    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9280    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9281constexpr bool
9282operator!=(
9283    const basic_static_string< N, CharT, Traits >& lhs,
9284    const CharT* rhs);
9285```
9286
9287[heading Description]
9288
9289
9290[endsect]
9291
9292
9293[endsect]
9294
9295[section:boost__static_strings__operator_lt_ operator<]
9296[indexterm1 operator<]
9297
9298
9299```
9300template<
9301    std::size_t N,
9302    std::size_t M,
9303    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9304    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9305constexpr bool
9306``[link static_string.ref.boost__static_strings__operator_lt_.overload1 operator<]``(
9307    const basic_static_string< N, CharT, Traits >& lhs,
9308    const basic_static_string< M, CharT, Traits >& rhs);
9309  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt_.overload1 `more...`]]``
9310
9311template<
9312    std::size_t N,
9313    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9314    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9315constexpr bool
9316``[link static_string.ref.boost__static_strings__operator_lt_.overload2 operator<]``(
9317    const CharT* lhs,
9318    const basic_static_string< N, CharT, Traits >& rhs);
9319  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt_.overload2 `more...`]]``
9320
9321template<
9322    std::size_t N,
9323    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9324    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9325constexpr bool
9326``[link static_string.ref.boost__static_strings__operator_lt_.overload3 operator<]``(
9327    const basic_static_string< N, CharT, Traits >& lhs,
9328    const CharT* rhs);
9329  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt_.overload3 `more...`]]``
9330```
9331
9332[section:overload1 operator< (1 of 3 overloads)]
9333
9334[heading Synopsis]
9335Defined in header [include_file boost/static_string/static_string.hpp]
9336
9337```
9338template<
9339    std::size_t N,
9340    std::size_t M,
9341    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9342    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9343constexpr bool
9344operator<(
9345    const basic_static_string< N, CharT, Traits >& lhs,
9346    const basic_static_string< M, CharT, Traits >& rhs);
9347```
9348
9349[heading Description]
9350
9351
9352[endsect]
9353
9354[section:overload2 operator< (2 of 3 overloads)]
9355
9356[heading Synopsis]
9357Defined in header [include_file boost/static_string/static_string.hpp]
9358
9359```
9360template<
9361    std::size_t N,
9362    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9363    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9364constexpr bool
9365operator<(
9366    const CharT* lhs,
9367    const basic_static_string< N, CharT, Traits >& rhs);
9368```
9369
9370[heading Description]
9371
9372
9373[endsect]
9374
9375[section:overload3 operator< (3 of 3 overloads)]
9376
9377[heading Synopsis]
9378Defined in header [include_file boost/static_string/static_string.hpp]
9379
9380```
9381template<
9382    std::size_t N,
9383    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9384    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9385constexpr bool
9386operator<(
9387    const basic_static_string< N, CharT, Traits >& lhs,
9388    const CharT* rhs);
9389```
9390
9391[heading Description]
9392
9393
9394[endsect]
9395
9396
9397[endsect]
9398
9399[section:boost__static_strings__operator_lt__eq_ operator<=]
9400[indexterm1 operator<=]
9401
9402
9403```
9404template<
9405    std::size_t N,
9406    std::size_t M,
9407    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9408    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9409constexpr bool
9410``[link static_string.ref.boost__static_strings__operator_lt__eq_.overload1 operator<=]``(
9411    const basic_static_string< N, CharT, Traits >& lhs,
9412    const basic_static_string< M, CharT, Traits >& rhs);
9413  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt__eq_.overload1 `more...`]]``
9414
9415template<
9416    std::size_t N,
9417    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9418    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9419constexpr bool
9420``[link static_string.ref.boost__static_strings__operator_lt__eq_.overload2 operator<=]``(
9421    const CharT* lhs,
9422    const basic_static_string< N, CharT, Traits >& rhs);
9423  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt__eq_.overload2 `more...`]]``
9424
9425template<
9426    std::size_t N,
9427    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9428    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9429constexpr bool
9430``[link static_string.ref.boost__static_strings__operator_lt__eq_.overload3 operator<=]``(
9431    const basic_static_string< N, CharT, Traits >& lhs,
9432    const CharT* rhs);
9433  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt__eq_.overload3 `more...`]]``
9434```
9435
9436[section:overload1 operator<= (1 of 3 overloads)]
9437
9438[heading Synopsis]
9439Defined in header [include_file boost/static_string/static_string.hpp]
9440
9441```
9442template<
9443    std::size_t N,
9444    std::size_t M,
9445    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9446    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9447constexpr bool
9448operator<=(
9449    const basic_static_string< N, CharT, Traits >& lhs,
9450    const basic_static_string< M, CharT, Traits >& rhs);
9451```
9452
9453[heading Description]
9454
9455
9456[endsect]
9457
9458[section:overload2 operator<= (2 of 3 overloads)]
9459
9460[heading Synopsis]
9461Defined in header [include_file boost/static_string/static_string.hpp]
9462
9463```
9464template<
9465    std::size_t N,
9466    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9467    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9468constexpr bool
9469operator<=(
9470    const CharT* lhs,
9471    const basic_static_string< N, CharT, Traits >& rhs);
9472```
9473
9474[heading Description]
9475
9476
9477[endsect]
9478
9479[section:overload3 operator<= (3 of 3 overloads)]
9480
9481[heading Synopsis]
9482Defined in header [include_file boost/static_string/static_string.hpp]
9483
9484```
9485template<
9486    std::size_t N,
9487    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9488    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9489constexpr bool
9490operator<=(
9491    const basic_static_string< N, CharT, Traits >& lhs,
9492    const CharT* rhs);
9493```
9494
9495[heading Description]
9496
9497
9498[endsect]
9499
9500
9501[endsect]
9502
9503[section:boost__static_strings__operator_gt_ operator>]
9504[indexterm1 operator>]
9505
9506
9507```
9508template<
9509    std::size_t N,
9510    std::size_t M,
9511    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9512    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9513constexpr bool
9514``[link static_string.ref.boost__static_strings__operator_gt_.overload1 operator>]``(
9515    const basic_static_string< N, CharT, Traits >& lhs,
9516    const basic_static_string< M, CharT, Traits >& rhs);
9517  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt_.overload1 `more...`]]``
9518
9519template<
9520    std::size_t N,
9521    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9522    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9523constexpr bool
9524``[link static_string.ref.boost__static_strings__operator_gt_.overload2 operator>]``(
9525    const CharT* lhs,
9526    const basic_static_string< N, CharT, Traits >& rhs);
9527  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt_.overload2 `more...`]]``
9528
9529template<
9530    std::size_t N,
9531    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9532    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9533constexpr bool
9534``[link static_string.ref.boost__static_strings__operator_gt_.overload3 operator>]``(
9535    const basic_static_string< N, CharT, Traits >& lhs,
9536    const CharT* rhs);
9537  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt_.overload3 `more...`]]``
9538```
9539
9540[section:overload1 operator> (1 of 3 overloads)]
9541
9542[heading Synopsis]
9543Defined in header [include_file boost/static_string/static_string.hpp]
9544
9545```
9546template<
9547    std::size_t N,
9548    std::size_t M,
9549    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9550    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9551constexpr bool
9552operator>(
9553    const basic_static_string< N, CharT, Traits >& lhs,
9554    const basic_static_string< M, CharT, Traits >& rhs);
9555```
9556
9557[heading Description]
9558
9559
9560[endsect]
9561
9562[section:overload2 operator> (2 of 3 overloads)]
9563
9564[heading Synopsis]
9565Defined in header [include_file boost/static_string/static_string.hpp]
9566
9567```
9568template<
9569    std::size_t N,
9570    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9571    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9572constexpr bool
9573operator>(
9574    const CharT* lhs,
9575    const basic_static_string< N, CharT, Traits >& rhs);
9576```
9577
9578[heading Description]
9579
9580
9581[endsect]
9582
9583[section:overload3 operator> (3 of 3 overloads)]
9584
9585[heading Synopsis]
9586Defined in header [include_file boost/static_string/static_string.hpp]
9587
9588```
9589template<
9590    std::size_t N,
9591    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9592    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9593constexpr bool
9594operator>(
9595    const basic_static_string< N, CharT, Traits >& lhs,
9596    const CharT* rhs);
9597```
9598
9599[heading Description]
9600
9601
9602[endsect]
9603
9604
9605[endsect]
9606
9607[section:boost__static_strings__operator_gt__eq_ operator>=]
9608[indexterm1 operator>=]
9609
9610
9611```
9612template<
9613    std::size_t N,
9614    std::size_t M,
9615    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9616    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9617constexpr bool
9618``[link static_string.ref.boost__static_strings__operator_gt__eq_.overload1 operator>=]``(
9619    const basic_static_string< N, CharT, Traits >& lhs,
9620    const basic_static_string< M, CharT, Traits >& rhs);
9621  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt__eq_.overload1 `more...`]]``
9622
9623template<
9624    std::size_t N,
9625    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9626    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9627constexpr bool
9628``[link static_string.ref.boost__static_strings__operator_gt__eq_.overload2 operator>=]``(
9629    const CharT* lhs,
9630    const basic_static_string< N, CharT, Traits >& rhs);
9631  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt__eq_.overload2 `more...`]]``
9632
9633template<
9634    std::size_t N,
9635    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9636    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9637constexpr bool
9638``[link static_string.ref.boost__static_strings__operator_gt__eq_.overload3 operator>=]``(
9639    const basic_static_string< N, CharT, Traits >& lhs,
9640    const CharT* rhs);
9641  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt__eq_.overload3 `more...`]]``
9642```
9643
9644[section:overload1 operator>= (1 of 3 overloads)]
9645
9646[heading Synopsis]
9647Defined in header [include_file boost/static_string/static_string.hpp]
9648
9649```
9650template<
9651    std::size_t N,
9652    std::size_t M,
9653    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9654    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9655constexpr bool
9656operator>=(
9657    const basic_static_string< N, CharT, Traits >& lhs,
9658    const basic_static_string< M, CharT, Traits >& rhs);
9659```
9660
9661[heading Description]
9662
9663
9664[endsect]
9665
9666[section:overload2 operator>= (2 of 3 overloads)]
9667
9668[heading Synopsis]
9669Defined in header [include_file boost/static_string/static_string.hpp]
9670
9671```
9672template<
9673    std::size_t N,
9674    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9675    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9676constexpr bool
9677operator>=(
9678    const CharT* lhs,
9679    const basic_static_string< N, CharT, Traits >& rhs);
9680```
9681
9682[heading Description]
9683
9684
9685[endsect]
9686
9687[section:overload3 operator>= (3 of 3 overloads)]
9688
9689[heading Synopsis]
9690Defined in header [include_file boost/static_string/static_string.hpp]
9691
9692```
9693template<
9694    std::size_t N,
9695    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9696    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9697constexpr bool
9698operator>=(
9699    const basic_static_string< N, CharT, Traits >& lhs,
9700    const CharT* rhs);
9701```
9702
9703[heading Description]
9704
9705
9706[endsect]
9707
9708
9709[endsect]
9710
9711[section:boost__static_strings__operator_plus_ operator+]
9712[indexterm1 operator+]
9713
9714
9715```
9716template<
9717    std::size_t N,
9718    std::size_t M,
9719    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9720    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9721constexpr basic_static_string< N+M, CharT, Traits >
9722``[link static_string.ref.boost__static_strings__operator_plus_.overload1 operator+]``(
9723    const basic_static_string< N, CharT, Traits >& lhs,
9724    const basic_static_string< M, CharT, Traits >& rhs);
9725  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_plus_.overload1 `more...`]]``
9726
9727template<
9728    std::size_t N,
9729    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9730    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9731constexpr basic_static_string< N+1, CharT, Traits >
9732``[link static_string.ref.boost__static_strings__operator_plus_.overload2 operator+]``(
9733    const basic_static_string< N, CharT, Traits >& lhs,
9734    CharT rhs);
9735  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_plus_.overload2 `more...`]]``
9736
9737template<
9738    std::size_t N,
9739    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9740    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9741constexpr basic_static_string< N+1, CharT, Traits >
9742``[link static_string.ref.boost__static_strings__operator_plus_.overload3 operator+]``(
9743    CharT lhs,
9744    const basic_static_string< N, CharT, Traits >& rhs);
9745  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_plus_.overload3 `more...`]]``
9746
9747template<
9748    std::size_t N,
9749    std::size_t M,
9750    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9751    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9752constexpr basic_static_string< N+M, CharT, Traits >
9753``[link static_string.ref.boost__static_strings__operator_plus_.overload4 operator+]``(
9754    const basic_static_string< N, CharT, Traits >& lhs,
9755    const CharT(&) rhs[M]);
9756  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_plus_.overload4 `more...`]]``
9757
9758template<
9759    std::size_t N,
9760    std::size_t M,
9761    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9762    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9763constexpr basic_static_string< N+M, CharT, Traits >
9764``[link static_string.ref.boost__static_strings__operator_plus_.overload5 operator+]``(
9765    const CharT(&) lhs[N],
9766    const basic_static_string< M, CharT, Traits >& rhs);
9767  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_plus_.overload5 `more...`]]``
9768```
9769
9770[section:overload1 operator+ (1 of 5 overloads)]
9771
9772[heading Synopsis]
9773Defined in header [include_file boost/static_string/static_string.hpp]
9774
9775```
9776template<
9777    std::size_t N,
9778    std::size_t M,
9779    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9780    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9781constexpr basic_static_string< N+M, CharT, Traits >
9782operator+(
9783    const basic_static_string< N, CharT, Traits >& lhs,
9784    const basic_static_string< M, CharT, Traits >& rhs);
9785```
9786
9787[heading Description]
9788
9789
9790[endsect]
9791
9792[section:overload2 operator+ (2 of 5 overloads)]
9793
9794[heading Synopsis]
9795Defined in header [include_file boost/static_string/static_string.hpp]
9796
9797```
9798template<
9799    std::size_t N,
9800    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9801    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9802constexpr basic_static_string< N+1, CharT, Traits >
9803operator+(
9804    const basic_static_string< N, CharT, Traits >& lhs,
9805    CharT rhs);
9806```
9807
9808[heading Description]
9809
9810
9811[endsect]
9812
9813[section:overload3 operator+ (3 of 5 overloads)]
9814
9815[heading Synopsis]
9816Defined in header [include_file boost/static_string/static_string.hpp]
9817
9818```
9819template<
9820    std::size_t N,
9821    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9822    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9823constexpr basic_static_string< N+1, CharT, Traits >
9824operator+(
9825    CharT lhs,
9826    const basic_static_string< N, CharT, Traits >& rhs);
9827```
9828
9829[heading Description]
9830
9831
9832[endsect]
9833
9834[section:overload4 operator+ (4 of 5 overloads)]
9835
9836[heading Synopsis]
9837Defined in header [include_file boost/static_string/static_string.hpp]
9838
9839```
9840template<
9841    std::size_t N,
9842    std::size_t M,
9843    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9844    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9845constexpr basic_static_string< N+M, CharT, Traits >
9846operator+(
9847    const basic_static_string< N, CharT, Traits >& lhs,
9848    const CharT(&) rhs[M]);
9849```
9850
9851[heading Description]
9852
9853
9854[endsect]
9855
9856[section:overload5 operator+ (5 of 5 overloads)]
9857
9858[heading Synopsis]
9859Defined in header [include_file boost/static_string/static_string.hpp]
9860
9861```
9862template<
9863    std::size_t N,
9864    std::size_t M,
9865    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9866    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9867constexpr basic_static_string< N+M, CharT, Traits >
9868operator+(
9869    const CharT(&) lhs[N],
9870    const basic_static_string< M, CharT, Traits >& rhs);
9871```
9872
9873[heading Description]
9874
9875
9876[endsect]
9877
9878
9879[endsect]
9880
9881[section:boost__static_strings__swap swap]
9882[indexterm1 swap]
9883
9884
9885```
9886template<
9887    std::size_t N,
9888    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9889    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9890constexpr void
9891``[link static_string.ref.boost__static_strings__swap.overload1 swap]``(
9892    basic_static_string< N, CharT, Traits >& lhs,
9893    basic_static_string< N, CharT, Traits >& rhs);
9894  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__swap.overload1 `more...`]]``
9895
9896template<
9897    std::size_t N,
9898    std::size_t M,
9899    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9900    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9901constexpr void
9902``[link static_string.ref.boost__static_strings__swap.overload2 swap]``(
9903    basic_static_string< N, CharT, Traits >& lhs,
9904    basic_static_string< M, CharT, Traits >& rhs);
9905  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__swap.overload2 `more...`]]``
9906```
9907
9908[section:overload1 swap (1 of 2 overloads)]
9909
9910[heading Synopsis]
9911Defined in header [include_file boost/static_string/static_string.hpp]
9912
9913```
9914template<
9915    std::size_t N,
9916    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9917    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9918constexpr void
9919swap(
9920    basic_static_string< N, CharT, Traits >& lhs,
9921    basic_static_string< N, CharT, Traits >& rhs);
9922```
9923
9924[heading Description]
9925
9926
9927[endsect]
9928
9929[section:overload2 swap (2 of 2 overloads)]
9930
9931[heading Synopsis]
9932Defined in header [include_file boost/static_string/static_string.hpp]
9933
9934```
9935template<
9936    std::size_t N,
9937    std::size_t M,
9938    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9939    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9940constexpr void
9941swap(
9942    basic_static_string< N, CharT, Traits >& lhs,
9943    basic_static_string< M, CharT, Traits >& rhs);
9944```
9945
9946[heading Description]
9947
9948
9949[endsect]
9950
9951
9952[endsect]
9953
9954[section:boost__static_strings__operator_lt__lt_ operator<<]
9955[indexterm1 operator<<]
9956
9957
9958[heading Synopsis]
9959Defined in header [include_file boost/static_string/static_string.hpp]
9960
9961```
9962template<
9963    std::size_t N,
9964    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
9965    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
9966std::basic_ostream< CharT, Traits >&
9967operator<<(
9968    std::basic_ostream< CharT, Traits >& os,
9969    const basic_static_string< N, CharT, Traits >& s);
9970```
9971
9972[heading Description]
9973
9974
9975[endsect]
9976
9977[section:boost__static_strings__to_static_string to_static_string]
9978[indexterm1 to_static_string]
9979
9980
9981Converts `value` to a `static_string`
9982```
9983static_string< std::numeric_limits< int >::digits10+2 >
9984``[link static_string.ref.boost__static_strings__to_static_string.overload1 to_static_string]``(
9985    int value);
9986  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload1 `more...`]]``
9987
9988static_string< std::numeric_limits< long >::digits10+2 >
9989``[link static_string.ref.boost__static_strings__to_static_string.overload2 to_static_string]``(
9990    long value);
9991  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload2 `more...`]]``
9992
9993static_string< std::numeric_limits< long long >::digits10+2 >
9994``[link static_string.ref.boost__static_strings__to_static_string.overload3 to_static_string]``(
9995    long long value);
9996  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload3 `more...`]]``
9997
9998static_string< std::numeric_limits< unsigned int >::digits10+1 >
9999``[link static_string.ref.boost__static_strings__to_static_string.overload4 to_static_string]``(
10000    unsigned int value);
10001  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload4 `more...`]]``
10002
10003static_string< std::numeric_limits< unsigned long >::digits10+1 >
10004``[link static_string.ref.boost__static_strings__to_static_string.overload5 to_static_string]``(
10005    unsigned long value);
10006  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload5 `more...`]]``
10007
10008static_string< std::numeric_limits< unsigned long long >::digits10+1 >
10009``[link static_string.ref.boost__static_strings__to_static_string.overload6 to_static_string]``(
10010    unsigned long long value);
10011  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload6 `more...`]]``
10012
10013static_string< std::numeric_limits< float >::max_digits10+4 >
10014``[link static_string.ref.boost__static_strings__to_static_string.overload7 to_static_string]``(
10015    float value);
10016  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload7 `more...`]]``
10017
10018static_string< std::numeric_limits< double >::max_digits10+4 >
10019``[link static_string.ref.boost__static_strings__to_static_string.overload8 to_static_string]``(
10020    double value);
10021  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload8 `more...`]]``
10022
10023static_string< std::numeric_limits< long double >::max_digits10+4 >
10024``[link static_string.ref.boost__static_strings__to_static_string.overload9 to_static_string]``(
10025    long double value);
10026  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload9 `more...`]]``
10027```
10028
10029[section:overload1 to_static_string (1 of 9 overloads)]
10030
10031Converts `value` to a `static_string`
10032[heading Synopsis]
10033Defined in header [include_file boost/static_string/static_string.hpp]
10034
10035```
10036static_string< std::numeric_limits< int >::digits10+2 >
10037to_static_string(
10038    int value);
10039```
10040
10041[heading Description]
10042
10043
10044[endsect]
10045
10046[section:overload2 to_static_string (2 of 9 overloads)]
10047
10048Converts `value` to a `static_string`
10049[heading Synopsis]
10050Defined in header [include_file boost/static_string/static_string.hpp]
10051
10052```
10053static_string< std::numeric_limits< long >::digits10+2 >
10054to_static_string(
10055    long value);
10056```
10057
10058[heading Description]
10059
10060
10061[endsect]
10062
10063[section:overload3 to_static_string (3 of 9 overloads)]
10064
10065Converts `value` to a `static_string`
10066[heading Synopsis]
10067Defined in header [include_file boost/static_string/static_string.hpp]
10068
10069```
10070static_string< std::numeric_limits< long long >::digits10+2 >
10071to_static_string(
10072    long long value);
10073```
10074
10075[heading Description]
10076
10077
10078[endsect]
10079
10080[section:overload4 to_static_string (4 of 9 overloads)]
10081
10082Converts `value` to a `static_string`
10083[heading Synopsis]
10084Defined in header [include_file boost/static_string/static_string.hpp]
10085
10086```
10087static_string< std::numeric_limits< unsigned int >::digits10+1 >
10088to_static_string(
10089    unsigned int value);
10090```
10091
10092[heading Description]
10093
10094
10095[endsect]
10096
10097[section:overload5 to_static_string (5 of 9 overloads)]
10098
10099Converts `value` to a `static_string`
10100[heading Synopsis]
10101Defined in header [include_file boost/static_string/static_string.hpp]
10102
10103```
10104static_string< std::numeric_limits< unsigned long >::digits10+1 >
10105to_static_string(
10106    unsigned long value);
10107```
10108
10109[heading Description]
10110
10111
10112[endsect]
10113
10114[section:overload6 to_static_string (6 of 9 overloads)]
10115
10116Converts `value` to a `static_string`
10117[heading Synopsis]
10118Defined in header [include_file boost/static_string/static_string.hpp]
10119
10120```
10121static_string< std::numeric_limits< unsigned long long >::digits10+1 >
10122to_static_string(
10123    unsigned long long value);
10124```
10125
10126[heading Description]
10127
10128
10129[endsect]
10130
10131[section:overload7 to_static_string (7 of 9 overloads)]
10132
10133Converts `value` to a `static_string`
10134[heading Synopsis]
10135Defined in header [include_file boost/static_string/static_string.hpp]
10136
10137```
10138static_string< std::numeric_limits< float >::max_digits10+4 >
10139to_static_string(
10140    float value);
10141```
10142
10143[heading Description]
10144
10145
10146[endsect]
10147
10148[section:overload8 to_static_string (8 of 9 overloads)]
10149
10150Converts `value` to a `static_string`
10151[heading Synopsis]
10152Defined in header [include_file boost/static_string/static_string.hpp]
10153
10154```
10155static_string< std::numeric_limits< double >::max_digits10+4 >
10156to_static_string(
10157    double value);
10158```
10159
10160[heading Description]
10161
10162
10163[endsect]
10164
10165[section:overload9 to_static_string (9 of 9 overloads)]
10166
10167Converts `value` to a `static_string`
10168[heading Synopsis]
10169Defined in header [include_file boost/static_string/static_string.hpp]
10170
10171```
10172static_string< std::numeric_limits< long double >::max_digits10+4 >
10173to_static_string(
10174    long double value);
10175```
10176
10177[heading Description]
10178
10179
10180[endsect]
10181
10182
10183[endsect]
10184
10185[section:boost__static_strings__to_static_wstring to_static_wstring]
10186[indexterm1 to_static_wstring]
10187
10188
10189Converts `value` to a `static_wstring`
10190```
10191static_wstring< std::numeric_limits< int >::digits10+2 >
10192``[link static_string.ref.boost__static_strings__to_static_wstring.overload1 to_static_wstring]``(
10193    int value);
10194  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload1 `more...`]]``
10195
10196static_wstring< std::numeric_limits< long >::digits10+2 >
10197``[link static_string.ref.boost__static_strings__to_static_wstring.overload2 to_static_wstring]``(
10198    long value);
10199  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload2 `more...`]]``
10200
10201static_wstring< std::numeric_limits< long long >::digits10+2 >
10202``[link static_string.ref.boost__static_strings__to_static_wstring.overload3 to_static_wstring]``(
10203    long long value);
10204  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload3 `more...`]]``
10205
10206static_wstring< std::numeric_limits< unsigned int >::digits10+1 >
10207``[link static_string.ref.boost__static_strings__to_static_wstring.overload4 to_static_wstring]``(
10208    unsigned int value);
10209  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload4 `more...`]]``
10210
10211static_wstring< std::numeric_limits< unsigned long >::digits10+1 >
10212``[link static_string.ref.boost__static_strings__to_static_wstring.overload5 to_static_wstring]``(
10213    unsigned long value);
10214  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload5 `more...`]]``
10215
10216static_wstring< std::numeric_limits< unsigned long long >::digits10+1 >
10217``[link static_string.ref.boost__static_strings__to_static_wstring.overload6 to_static_wstring]``(
10218    unsigned long long value);
10219  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload6 `more...`]]``
10220
10221static_wstring< std::numeric_limits< float >::max_digits10+4 >
10222``[link static_string.ref.boost__static_strings__to_static_wstring.overload7 to_static_wstring]``(
10223    float value);
10224  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload7 `more...`]]``
10225
10226static_wstring< std::numeric_limits< double >::max_digits10+4 >
10227``[link static_string.ref.boost__static_strings__to_static_wstring.overload8 to_static_wstring]``(
10228    double value);
10229  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload8 `more...`]]``
10230
10231static_wstring< std::numeric_limits< long double >::max_digits10+4 >
10232``[link static_string.ref.boost__static_strings__to_static_wstring.overload9 to_static_wstring]``(
10233    long double value);
10234  ``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload9 `more...`]]``
10235```
10236
10237[section:overload1 to_static_wstring (1 of 9 overloads)]
10238
10239Converts `value` to a `static_wstring`
10240[heading Synopsis]
10241Defined in header [include_file boost/static_string/static_string.hpp]
10242
10243```
10244static_wstring< std::numeric_limits< int >::digits10+2 >
10245to_static_wstring(
10246    int value);
10247```
10248
10249[heading Description]
10250
10251
10252[endsect]
10253
10254[section:overload2 to_static_wstring (2 of 9 overloads)]
10255
10256Converts `value` to a `static_wstring`
10257[heading Synopsis]
10258Defined in header [include_file boost/static_string/static_string.hpp]
10259
10260```
10261static_wstring< std::numeric_limits< long >::digits10+2 >
10262to_static_wstring(
10263    long value);
10264```
10265
10266[heading Description]
10267
10268
10269[endsect]
10270
10271[section:overload3 to_static_wstring (3 of 9 overloads)]
10272
10273Converts `value` to a `static_wstring`
10274[heading Synopsis]
10275Defined in header [include_file boost/static_string/static_string.hpp]
10276
10277```
10278static_wstring< std::numeric_limits< long long >::digits10+2 >
10279to_static_wstring(
10280    long long value);
10281```
10282
10283[heading Description]
10284
10285
10286[endsect]
10287
10288[section:overload4 to_static_wstring (4 of 9 overloads)]
10289
10290Converts `value` to a `static_wstring`
10291[heading Synopsis]
10292Defined in header [include_file boost/static_string/static_string.hpp]
10293
10294```
10295static_wstring< std::numeric_limits< unsigned int >::digits10+1 >
10296to_static_wstring(
10297    unsigned int value);
10298```
10299
10300[heading Description]
10301
10302
10303[endsect]
10304
10305[section:overload5 to_static_wstring (5 of 9 overloads)]
10306
10307Converts `value` to a `static_wstring`
10308[heading Synopsis]
10309Defined in header [include_file boost/static_string/static_string.hpp]
10310
10311```
10312static_wstring< std::numeric_limits< unsigned long >::digits10+1 >
10313to_static_wstring(
10314    unsigned long value);
10315```
10316
10317[heading Description]
10318
10319
10320[endsect]
10321
10322[section:overload6 to_static_wstring (6 of 9 overloads)]
10323
10324Converts `value` to a `static_wstring`
10325[heading Synopsis]
10326Defined in header [include_file boost/static_string/static_string.hpp]
10327
10328```
10329static_wstring< std::numeric_limits< unsigned long long >::digits10+1 >
10330to_static_wstring(
10331    unsigned long long value);
10332```
10333
10334[heading Description]
10335
10336
10337[endsect]
10338
10339[section:overload7 to_static_wstring (7 of 9 overloads)]
10340
10341Converts `value` to a `static_wstring`
10342[heading Synopsis]
10343Defined in header [include_file boost/static_string/static_string.hpp]
10344
10345```
10346static_wstring< std::numeric_limits< float >::max_digits10+4 >
10347to_static_wstring(
10348    float value);
10349```
10350
10351[heading Description]
10352
10353
10354[endsect]
10355
10356[section:overload8 to_static_wstring (8 of 9 overloads)]
10357
10358Converts `value` to a `static_wstring`
10359[heading Synopsis]
10360Defined in header [include_file boost/static_string/static_string.hpp]
10361
10362```
10363static_wstring< std::numeric_limits< double >::max_digits10+4 >
10364to_static_wstring(
10365    double value);
10366```
10367
10368[heading Description]
10369
10370
10371[endsect]
10372
10373[section:overload9 to_static_wstring (9 of 9 overloads)]
10374
10375Converts `value` to a `static_wstring`
10376[heading Synopsis]
10377Defined in header [include_file boost/static_string/static_string.hpp]
10378
10379```
10380static_wstring< std::numeric_limits< long double >::max_digits10+4 >
10381to_static_wstring(
10382    long double value);
10383```
10384
10385[heading Description]
10386
10387
10388[endsect]
10389
10390
10391[endsect]
10392
10393[section:boost__static_strings__hash_value hash_value]
10394[indexterm1 hash_value]
10395
10396
10397hash_value overload for Boost.Container_Hash
10398[heading Synopsis]
10399Defined in header [include_file boost/static_string/static_string.hpp]
10400
10401```
10402template<
10403    std::size_t N,
10404    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
10405    [role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
10406std::size_t
10407hash_value(
10408    const basic_static_string< N, CharT, Traits >& str);
10409```
10410
10411[heading Description]
10412
10413
10414[endsect]
10415