@@ -215,22 +215,22 @@ namespace detail {
215215 return k;
216216 }
217217
218- static const CharT colon[ 1 ] ;
219- static const CharT colon_space[ 2 ] ;
220- static const CharT space_colon[ 2 ] ;
221- static const CharT space_colon_space[ 3 ] ;
222- static const CharT comma[ 1 ] ;
223- static const CharT comma_space[ 2 ] ;
224- static const CharT space_comma[ 2 ] ;
225- static const CharT space_comma_space[ 3 ] ;
226- static const CharT left_brace[ 1 ] ;
227- static const CharT right_brace[ 1 ] ;
228- static const CharT left_brace_space[ 2 ] ;
229- static const CharT space_right_brace[ 2 ] ;
230- static const CharT left_bracket[ 1 ] ;
231- static const CharT right_bracket[ 1 ] ;
232- static const CharT left_bracket_space[ 2 ] ;
233- static const CharT space_right_bracket[ 2 ] ;
218+ static std::array< CharT, 1 > colon;
219+ static std::array< CharT, 2 > colon_space;
220+ static std::array< CharT, 2 > space_colon;
221+ static std::array< CharT, 3 > space_colon_space;
222+ static std::array< CharT, 1 > comma;
223+ static std::array< CharT, 2 > comma_space;
224+ static std::array< CharT, 2 > space_comma;
225+ static std::array< CharT, 3 > space_comma_space;
226+ static std::array< CharT, 1 > left_brace;
227+ static std::array< CharT, 1 > right_brace;
228+ static std::array< CharT, 2 > left_brace_space;
229+ static std::array< CharT, 2 > space_right_brace;
230+ static std::array< CharT, 1 > left_bracket;
231+ static std::array< CharT, 1 > right_bracket;
232+ static std::array< CharT, 2 > left_bracket_space;
233+ static std::array< CharT, 2 > space_right_bracket;
234234 public:
235235 using allocator_type = Allocator;
236236 using char_type = CharT;
@@ -366,52 +366,52 @@ namespace detail {
366366 switch (options.spaces_around_colon ())
367367 {
368368 case spaces_option::space_after:
369- colon_str_ = jsoncons::basic_string_view<CharT>(colon_space, sizeof ( colon_space));
369+ colon_str_ = jsoncons::basic_string_view<CharT>(colon_space. data (), colon_space. size ( ));
370370 break ;
371371 case spaces_option::space_before:
372- colon_str_ = jsoncons::basic_string_view<CharT>(space_colon, sizeof ( space_colon));
372+ colon_str_ = jsoncons::basic_string_view<CharT>(space_colon. data (), space_colon. size ( ));
373373 break ;
374374 case spaces_option::space_before_and_after:
375- colon_str_ = jsoncons::basic_string_view<CharT>(space_colon_space, sizeof ( space_colon_space));
375+ colon_str_ = jsoncons::basic_string_view<CharT>(space_colon_space. data (), space_colon_space. size ( ));
376376 break ;
377377 default :
378- colon_str_ = jsoncons::basic_string_view<CharT>(colon, sizeof ( colon));
378+ colon_str_ = jsoncons::basic_string_view<CharT>(colon. data (), colon. size ( ));
379379 break ;
380380 }
381381 switch (options.spaces_around_comma ())
382382 {
383383 case spaces_option::space_after:
384- comma_str_ = jsoncons::basic_string_view<CharT>(comma_space, sizeof (comma_space ));
384+ comma_str_ = jsoncons::basic_string_view<CharT>(comma_space. data (), colon_space. size ( ));
385385 break ;
386386 case spaces_option::space_before:
387- comma_str_ = jsoncons::basic_string_view<CharT>(space_comma, sizeof ( space_comma));
387+ comma_str_ = jsoncons::basic_string_view<CharT>(space_comma. data (), space_comma. size ( ));
388388 break ;
389389 case spaces_option::space_before_and_after:
390- comma_str_ = jsoncons::basic_string_view<CharT>(space_comma_space, sizeof ( space_comma_space));
390+ comma_str_ = jsoncons::basic_string_view<CharT>(space_comma_space. data (), space_comma_space. size ( ));
391391 break ;
392392 default :
393- comma_str_ = jsoncons::basic_string_view<CharT>(comma, sizeof ( comma));
393+ comma_str_ = jsoncons::basic_string_view<CharT>(comma. data (), comma. size ( ));
394394 break ;
395395 }
396396 if (options.pad_inside_object_braces ())
397397 {
398- open_brace_str_ = jsoncons::basic_string_view<CharT>(left_brace_space, sizeof ( left_brace_space));
399- close_brace_str_ = jsoncons::basic_string_view<CharT>(space_right_brace, sizeof ( space_right_brace));
398+ open_brace_str_ = jsoncons::basic_string_view<CharT>(left_brace_space. data (), left_brace_space. size ( ));
399+ close_brace_str_ = jsoncons::basic_string_view<CharT>(space_right_brace. data (), space_right_brace. size ( ));
400400 }
401401 else
402402 {
403- open_brace_str_ = jsoncons::basic_string_view<CharT>(left_brace, sizeof ( left_brace));
404- close_brace_str_ = jsoncons::basic_string_view<CharT>(right_brace, sizeof ( right_brace));
403+ open_brace_str_ = jsoncons::basic_string_view<CharT>(left_brace. data (), left_brace. size ( ));
404+ close_brace_str_ = jsoncons::basic_string_view<CharT>(right_brace. data (), right_brace. size ( ));
405405 }
406406 if (options.pad_inside_array_brackets ())
407407 {
408- open_bracket_str_ = jsoncons::basic_string_view<CharT>(left_bracket_space, sizeof ( left_bracket_space));
409- close_bracket_str_ = jsoncons::basic_string_view<CharT>(space_right_bracket, sizeof ( space_right_bracket));
408+ open_bracket_str_ = jsoncons::basic_string_view<CharT>(left_bracket_space. data (), left_bracket_space. size ( ));
409+ close_bracket_str_ = jsoncons::basic_string_view<CharT>(space_right_bracket. data (), space_right_bracket. size ( ));
410410 }
411411 else
412412 {
413- open_bracket_str_ = jsoncons::basic_string_view<CharT>(left_bracket, sizeof ( left_bracket));
414- close_bracket_str_ = jsoncons::basic_string_view<CharT>(right_bracket, sizeof ( right_bracket));
413+ open_bracket_str_ = jsoncons::basic_string_view<CharT>(left_bracket. data (), left_bracket. size ( ));
414+ close_bracket_str_ = jsoncons::basic_string_view<CharT>(right_bracket. data (), right_bracket. size ( ));
415415 }
416416 }
417417
@@ -1104,40 +1104,40 @@ namespace detail {
11041104 };
11051105
11061106 template <typename CharT, typename Sink, typename Allocator>
1107- const CharT basic_json_encoder<CharT, Sink, Allocator>::colon[ 1 ] = {' :' };
1107+ std::array< CharT, 1 > basic_json_encoder<CharT, Sink, Allocator>::colon = {' :' };
11081108 template <typename CharT,typename Sink,typename Allocator>
1109- const CharT basic_json_encoder<CharT,Sink,Allocator>::colon_space[ 2 ] = {' :' , ' ' };
1109+ std::array< CharT, 2 > basic_json_encoder<CharT,Sink,Allocator>::colon_space = {' :' , ' ' };
11101110 template <typename CharT,typename Sink,typename Allocator>
1111- const CharT basic_json_encoder<CharT,Sink,Allocator>::space_colon[ 2 ] = {' ' , ' :' };
1111+ std::array< CharT, 2 > basic_json_encoder<CharT,Sink,Allocator>::space_colon = {' ' , ' :' };
11121112 template <typename CharT,typename Sink,typename Allocator>
1113- const CharT basic_json_encoder<CharT,Sink,Allocator>::space_colon_space[ 3 ] = {' ' , ' :' , ' ' };
1113+ std::array< CharT, 3 > basic_json_encoder<CharT,Sink,Allocator>::space_colon_space = {' ' , ' :' , ' ' };
11141114
11151115 template <typename CharT, typename Sink, typename Allocator>
1116- const CharT basic_json_encoder<CharT, Sink, Allocator>::comma[ 1 ] = {' ,' };
1116+ std::array< CharT, 1 > basic_json_encoder<CharT, Sink, Allocator>::comma = {' ,' };
11171117 template <typename CharT,typename Sink,typename Allocator>
1118- const CharT basic_json_encoder<CharT,Sink,Allocator>::comma_space[ 2 ] = {' ,' , ' ' };
1118+ std::array< CharT, 2 > basic_json_encoder<CharT,Sink,Allocator>::comma_space = {' ,' , ' ' };
11191119 template <typename CharT,typename Sink,typename Allocator>
1120- const CharT basic_json_encoder<CharT,Sink,Allocator>::space_comma[ 2 ] = {' ' , ' ,' };
1120+ std::array< CharT, 2 > basic_json_encoder<CharT,Sink,Allocator>::space_comma = {' ' , ' ,' };
11211121 template <typename CharT,typename Sink,typename Allocator>
1122- const CharT basic_json_encoder<CharT,Sink,Allocator>::space_comma_space[ 3 ] = {' ' , ' ,' , ' ' };
1122+ std::array< CharT, 3 > basic_json_encoder<CharT,Sink,Allocator>::space_comma_space = {' ' , ' ,' , ' ' };
11231123
11241124 template <typename CharT, typename Sink, typename Allocator>
1125- const CharT basic_json_encoder<CharT, Sink, Allocator>::left_brace[ 1 ] = {' {' };
1125+ std::array< CharT, 1 > basic_json_encoder<CharT, Sink, Allocator>::left_brace = {' {' };
11261126 template <typename CharT,typename Sink,typename Allocator>
1127- const CharT basic_json_encoder<CharT,Sink,Allocator>::right_brace[ 1 ] = {' }' };
1127+ std::array< CharT, 1 > basic_json_encoder<CharT,Sink,Allocator>::right_brace = {' }' };
11281128 template <typename CharT,typename Sink,typename Allocator>
1129- const CharT basic_json_encoder<CharT,Sink,Allocator>::left_brace_space[ 2 ] = {' {' , ' ' };
1129+ std::array< CharT, 2 > basic_json_encoder<CharT,Sink,Allocator>::left_brace_space = {' {' , ' ' };
11301130 template <typename CharT,typename Sink,typename Allocator>
1131- const CharT basic_json_encoder<CharT,Sink,Allocator>::space_right_brace[ 2 ] = {' ' , ' }' };
1131+ std::array< CharT, 2 > basic_json_encoder<CharT,Sink,Allocator>::space_right_brace = {' ' , ' }' };
11321132
11331133 template <typename CharT, typename Sink, typename Allocator>
1134- const CharT basic_json_encoder<CharT, Sink, Allocator>::left_bracket[ 1 ] = {' [' };
1134+ std::array< CharT, 1 > basic_json_encoder<CharT, Sink, Allocator>::left_bracket = {' [' };
11351135 template <typename CharT,typename Sink,typename Allocator>
1136- const CharT basic_json_encoder<CharT,Sink,Allocator>::right_bracket[ 1 ] = {' ]' };
1136+ std::array< CharT, 1 > basic_json_encoder<CharT,Sink,Allocator>::right_bracket = {' ]' };
11371137 template <typename CharT,typename Sink,typename Allocator>
1138- const CharT basic_json_encoder<CharT,Sink,Allocator>::left_bracket_space[ 2 ] = {' [' , ' ' };
1138+ std::array< CharT, 2 > basic_json_encoder<CharT,Sink,Allocator>::left_bracket_space = {' [' , ' ' };
11391139 template <typename CharT,typename Sink,typename Allocator>
1140- const CharT basic_json_encoder<CharT,Sink,Allocator>::space_right_bracket[ 2 ] = {' ' , ' ]' };
1140+ std::array< CharT, 2 > basic_json_encoder<CharT,Sink,Allocator>::space_right_bracket = {' ' , ' ]' };
11411141
11421142 template <typename CharT,typename Sink=jsoncons::stream_sink<CharT>,typename Allocator=std::allocator<char >>
11431143 class basic_compact_json_encoder final : public basic_json_visitor<CharT>
0 commit comments