Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
yaml-cpp
Commits
32689981
Commit
32689981
authored
Mar 15, 2010
by
Jesse Beder
Browse files
Added overloads for parsing stl maps and vectors
parent
083a97b1
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
40 additions
and
3 deletions
+40
-3
include/stlnode.h
include/stlnode.h
+36
-0
include/yaml.h
include/yaml.h
+1
-0
test/spectests.cpp
test/spectests.cpp
+3
-3
No files found.
include/stlnode.h
0 → 100644
View file @
32689981
#pragma once
#ifndef STLNODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define STLNODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#include <vector>
#include <map>
namespace
YAML
{
template
<
typename
T
>
void
operator
>>
(
const
Node
&
node
,
std
::
vector
<
T
>&
v
)
{
v
.
clear
();
v
.
resize
(
node
.
size
());
for
(
unsigned
i
=
0
;
i
<
node
.
size
();
++
i
)
node
[
i
]
>>
v
[
i
];
}
template
<
typename
K
,
typename
V
>
void
operator
>>
(
const
Node
&
node
,
std
::
map
<
K
,
V
>&
m
)
{
m
.
clear
();
for
(
Iterator
it
=
node
.
begin
();
it
!=
node
.
end
();
++
it
)
{
K
k
;
V
v
;
it
.
first
()
>>
k
;
it
.
second
()
>>
v
;
m
[
k
]
=
v
;
}
}
}
#endif // STLNODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml.h
View file @
32689981
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
#include "parser.h"
#include "parser.h"
#include "node.h"
#include "node.h"
#include "stlnode.h"
#include "iterator.h"
#include "iterator.h"
#include "emitter.h"
#include "emitter.h"
#include "stlemitter.h"
#include "stlemitter.h"
...
...
test/spectests.cpp
View file @
32689981
...
@@ -1121,9 +1121,9 @@ namespace Test {
...
@@ -1121,9 +1121,9 @@ namespace Test {
" 0.278"
;
" 0.278"
;
PARSE
(
doc
,
input
);
PARSE
(
doc
,
input
);
S
tring
Map
key
;
std
::
map
<
std
::
string
,
std
::
s
tring
>
key
;
key
.
_
[
"first"
]
=
"Sammy"
;
key
[
"first"
]
=
"Sammy"
;
key
.
_
[
"last"
]
=
"Sosa"
;
key
[
"last"
]
=
"Sosa"
;
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
key
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
key
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
key
][
"hr"
]
==
65
);
YAML_ASSERT
(
doc
[
key
][
"hr"
]
==
65
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment