File tree 2 files changed +8
-2
lines changed
2 files changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -67,11 +67,11 @@ Buffer::const_iterator Buffer::end() const {
67
67
}
68
68
69
69
Buffer::operator bool () const {
70
- return size_ != 0 ;
70
+ return (data_ != nullptr ) && ( size_ != 0 ) ;
71
71
}
72
72
73
73
Buffer::operator string () const {
74
- return string (data_, data_ + size_);
74
+ return ( bool )(* this ) ? string (data_, data_ + size_) : string ( );
75
75
}
76
76
77
77
ostream& operator <<(ostream& output, const Buffer& rhs) {
Original file line number Diff line number Diff line change @@ -14,16 +14,22 @@ TEST_CASE("conversions", "[buffer]") {
14
14
const string data = " Hello world!" ;
15
15
const Buffer buffer (data);
16
16
const Buffer empty_buffer;
17
+ const Buffer null_data ((const char *)nullptr , 5 );
18
+ const Buffer null_size (data.c_str (), 0 );
17
19
18
20
19
21
SECTION (" bool conversion" ) {
20
22
CHECK (!!buffer == true );
21
23
CHECK (!!empty_buffer == false );
24
+ CHECK (!!null_data == false );
25
+ CHECK (!!null_size == false );
22
26
}
23
27
24
28
SECTION (" string conversion" ) {
25
29
CHECK (static_cast <string>(buffer) == data);
26
30
CHECK (static_cast <string>(empty_buffer).empty ());
31
+ CHECK (static_cast <string>(null_data).empty ());
32
+ CHECK (static_cast <string>(null_size).empty ());
27
33
}
28
34
29
35
SECTION (" vector conversion" ) {
You can’t perform that action at this time.
0 commit comments