@@ -967,6 +967,13 @@ StreamWriter* StreamWriterBuilder::newStreamWriter(std::ostream* stream) const
967967{
968968 return new BuiltStyledStreamWriter (stream, indentation_, cs_);
969969}
970+
971+ // This might become public someday.
972+ class StreamWriterBuilderFactory {
973+ public:
974+ virtual ~StreamWriterBuilderFactory ();
975+ virtual StreamWriterBuilder* newStreamWriterBuilder () const ;
976+ };
970977StreamWriterBuilderFactory::~StreamWriterBuilderFactory ()
971978{
972979}
@@ -975,14 +982,19 @@ StreamWriterBuilder* StreamWriterBuilderFactory::newStreamWriterBuilder() const
975982 return new StreamWriterBuilder;
976983}
977984
978- StreamWriter::Builder::Builder (StreamWriterBuilderFactory const * f )
979- : own_(f-> newStreamWriterBuilder ())
985+ StreamWriter::Builder::Builder ()
986+ : own_(StreamWriterBuilderFactory(). newStreamWriterBuilder())
980987{
981988}
982989StreamWriter::Builder::~Builder ()
983990{
984991 delete own_;
985992}
993+ StreamWriter::Builder::Builder (Builder const &)
994+ : own_(nullptr )
995+ {abort ();}
996+ void StreamWriter::Builder::operator =(Builder const &)
997+ {abort ();}
986998void StreamWriter::Builder::setCommentStyle (CommentStyle v)
987999{
9881000 own_->setCommentStyle (v);
@@ -1006,8 +1018,7 @@ std::string writeString(Value const& root, StreamWriter::Builder const& builder)
10061018}
10071019
10081020std::ostream& operator <<(std::ostream& sout, Value const & root) {
1009- StreamWriterBuilderFactory f;
1010- StreamWriter::Builder builder (&f);
1021+ StreamWriter::Builder builder;
10111022 builder.setCommentStyle (StreamWriter::CommentStyle::All);
10121023 std::shared_ptr<StreamWriter> writer (builder.newStreamWriter (&sout));
10131024 writer->write (root);
0 commit comments