Commit 33a71151 authored by beder's avatar beder
Browse files

Added helper emitter functions, but we have a problem: YAML::Value is already a manipulator

parent 59ce694c
...@@ -12,5 +12,6 @@ ...@@ -12,5 +12,6 @@
#include "yaml-cpp/value/iterator.h" #include "yaml-cpp/value/iterator.h"
#include "yaml-cpp/value/detail/impl.h" #include "yaml-cpp/value/detail/impl.h"
#include "yaml-cpp/value/parse.h" #include "yaml-cpp/value/parse.h"
#include "yaml-cpp/value/emit.h"
#endif // VALUE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 #endif // VALUE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef VALUE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define VALUE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#endif
#include <string>
#include <iosfwd>
namespace YAML
{
class Emitter;
class Value;
Emitter& operator << (Emitter& out, const foo& value);
std::ostream& operator << (std::ostream& out, const Value& value);
}
#endif // VALUE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#include "yaml-cpp/value/emit.h"
#include "yaml-cpp/emitfromevents.h"
#include "yaml-cpp/emitter.h"
#include "valueevents.h"
namespace YAML
{
Emitter& operator << (Emitter& out, const Value& value)
{
EmitFromEvents emitFromEvents(out);
ValueEvents events(value);
events.Emit(emitFromEvents);
return out;
}
std::ostream& operator << (std::ostream& out, const Value& value)
{
Emitter emitter;
emitter << value;
out << emitter.c_str();
return out;
}
}
...@@ -18,7 +18,7 @@ namespace YAML ...@@ -18,7 +18,7 @@ namespace YAML
class ValueEvents class ValueEvents
{ {
public: public:
ValueEvents(const Value& value); explicit ValueEvents(const Value& value);
void Emit(EventHandler& handler); void Emit(EventHandler& handler);
......
...@@ -4,9 +4,7 @@ ...@@ -4,9 +4,7 @@
int main() int main()
{ {
YAML::Value value = YAML::Parse("{foo: bar, monkey: value}"); YAML::Value value = YAML::Parse("{foo: bar, monkey: value}");
for(YAML::const_iterator it=value.begin();it!=value.end();++it) { std::cout << value << "\n";
std::cout << it->first.as<std::string>() << " -> " << it->second.as<std::string>() << "\n";
}
return 0; return 0;
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment