@@ -38,14 +38,22 @@ template <typename CharT, typename TraitsT = std::char_traits<CharT>>
38
38
void test () {
39
39
using SpStream = std::basic_spanstream<CharT, TraitsT>;
40
40
41
+ constexpr auto arrSize{30UZ};
42
+
41
43
constexpr std::basic_string_view<CharT, TraitsT> sv{SV (" zmt 94 hkt 82 pir 43vr" )};
42
- CharT arr[sv.size () + 1 ];
44
+ assert (sv.size () < arrSize);
45
+
46
+ CharT arr[arrSize]{};
43
47
initialize_array (arr, sv);
48
+
44
49
std::span<CharT> sp{arr};
45
50
46
51
// Mode: default (`in` | `out`)
47
52
{
48
53
SpStream spSt (sp);
54
+ assert (spSt.span ().size () == 0 );
55
+
56
+ // Read from stream
49
57
std::basic_string<CharT, TraitsT> str1;
50
58
spSt >> str1;
51
59
int i1;
@@ -66,7 +74,12 @@ void test() {
66
74
assert (str3 == CS (" pir" ));
67
75
assert (i3 == 43 );
68
76
69
- spSt << CS (" year 2024" );
77
+ // Write to stream
78
+ constexpr std::basic_string_view<CharT, TraitsT> sv1{SV (" year 2024" )};
79
+ spSt << sv1;
80
+ assert (spSt.span ().size () == sv1.size ());
81
+
82
+ // Read from stream
70
83
spSt.seekg (0 );
71
84
std::basic_string<CharT, TraitsT> str4;
72
85
spSt >> str4;
@@ -75,6 +88,18 @@ void test() {
75
88
76
89
assert (str4 == CS (" year" ));
77
90
assert (i4 == 2024 );
91
+
92
+ // Write to stream
93
+ spSt << CS (" 94" );
94
+ spSt << 84 ;
95
+ std::cout << spSt.span ().size () << std::endl;
96
+ assert (spSt.span ().size () == sv1.size () + 4 );
97
+
98
+ // Write to stream with overflow
99
+ constexpr std::basic_string_view<CharT, TraitsT> sv2{
100
+ SV (" This string should overflow! This string should overflow!" )};
101
+ spSt << sv2;
102
+ assert (spSt.span ().size () == arrSize);
78
103
}
79
104
// Mode: `in`
80
105
{
0 commit comments