mirror of
https://github.com/jbeder/yaml-cpp.git
synced 2025-09-09 12:41:17 +00:00
Added helper emitter functions, but we have a problem: YAML::Value is already a manipulator
This commit is contained in:
@@ -12,5 +12,6 @@
|
||||
#include "yaml-cpp/value/iterator.h"
|
||||
#include "yaml-cpp/value/detail/impl.h"
|
||||
#include "yaml-cpp/value/parse.h"
|
||||
#include "yaml-cpp/value/emit.h"
|
||||
|
||||
#endif // VALUE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
|
||||
|
21
include/yaml-cpp/value/emit.h
Normal file
21
include/yaml-cpp/value/emit.h
Normal file
@@ -0,0 +1,21 @@
|
||||
#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
|
||||
|
23
src/value/emit.cpp
Normal file
23
src/value/emit.cpp
Normal file
@@ -0,0 +1,23 @@
|
||||
#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
|
||||
class ValueEvents
|
||||
{
|
||||
public:
|
||||
ValueEvents(const Value& value);
|
||||
explicit ValueEvents(const Value& value);
|
||||
|
||||
void Emit(EventHandler& handler);
|
||||
|
||||
|
@@ -4,9 +4,7 @@
|
||||
int main()
|
||||
{
|
||||
YAML::Value value = YAML::Parse("{foo: bar, monkey: value}");
|
||||
for(YAML::const_iterator it=value.begin();it!=value.end();++it) {
|
||||
std::cout << it->first.as<std::string>() << " -> " << it->second.as<std::string>() << "\n";
|
||||
}
|
||||
std::cout << value << "\n";
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user