diff options
Diffstat (limited to 'src/json.cc')
| -rw-r--r-- | src/json.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/json.cc b/src/json.cc index 46ea513..e8ddf52 100644 --- a/src/json.cc +++ b/src/json.cc @@ -62,6 +62,11 @@ class BaseWriter : public Writer { write(value); } + void value(std::nullptr_t) override { + before_value(); + write(nullptr); + } + void start_array() override { before_value(); stack_.emplace_back(StackEntry::Type::kArray); @@ -125,6 +130,7 @@ class BaseWriter : public Writer { virtual void write(bool value) = 0; virtual void write(char value) = 0; virtual void write(std::string_view value) = 0; + virtual void write(std::nullptr_t) = 0; void write(char const* value) { this->write(std::string_view(value)); } @@ -225,6 +231,8 @@ class IosWriter : public BaseWriter { void write(char value) override { out_ << value; } + void write(std::nullptr_t) override { out_ << "null"; } + private: std::ostream& out_; }; @@ -275,6 +283,8 @@ class StringWriter : public BaseWriter { void write(char value) override { out_.push_back(value); } + void write(std::nullptr_t) override { out_.append("null"); } + void clear() override { BaseWriter::clear(); out_.clear(); |
