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
a308b73e
"examples/community/test_tensorrt_controlnet.py" did not exist on "0e82fb19e16bd2d45ade31c9a4b871de56e7e80a"
Commit
a308b73e
authored
Sep 11, 2011
by
Jesse Beder
Browse files
Set the map iterator to filter over undefined items
parent
c2a8a2c1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
29 additions
and
21 deletions
+29
-21
include/yaml-cpp/node/detail/iterator.h
include/yaml-cpp/node/detail/iterator.h
+1
-2
include/yaml-cpp/node/detail/node_iterator.h
include/yaml-cpp/node/detail/node_iterator.h
+24
-15
src/node/detail/node_data.cpp
src/node/detail/node_data.cpp
+4
-4
No files found.
include/yaml-cpp/node/detail/iterator.h
View file @
a308b73e
...
@@ -23,7 +23,7 @@ namespace YAML
...
@@ -23,7 +23,7 @@ namespace YAML
iterator_base
<
V
>
,
iterator_base
<
V
>
,
node_iterator
,
node_iterator
,
V
,
V
,
std
::
bidirectional
_iterator_tag
>
std
::
forward
_iterator_tag
>
{
{
private:
private:
template
<
typename
>
friend
class
iterator_base
;
template
<
typename
>
friend
class
iterator_base
;
...
@@ -42,7 +42,6 @@ namespace YAML
...
@@ -42,7 +42,6 @@ namespace YAML
friend
class
boost
::
iterator_core_access
;
friend
class
boost
::
iterator_core_access
;
void
increment
()
{
this
->
base_reference
()
=
boost
::
next
(
this
->
base
());
}
void
increment
()
{
this
->
base_reference
()
=
boost
::
next
(
this
->
base
());
}
void
decrement
()
{
this
->
base_reference
()
=
boost
::
prior
(
this
->
base
());
}
value_type
dereference
()
const
{
value_type
dereference
()
const
{
const
typename
base_type
::
value_type
&
v
=
*
this
->
base
();
const
typename
base_type
::
value_type
&
v
=
*
this
->
base
();
...
...
include/yaml-cpp/node/detail/node_iterator.h
View file @
a308b73e
...
@@ -54,7 +54,7 @@ namespace YAML
...
@@ -54,7 +54,7 @@ namespace YAML
class
node_iterator_base
:
public
boost
::
iterator_facade
<
class
node_iterator_base
:
public
boost
::
iterator_facade
<
node_iterator_base
<
V
>
,
node_iterator_base
<
V
>
,
node_iterator_value
<
V
>
,
node_iterator_value
<
V
>
,
std
::
bidirectional
_iterator_tag
,
std
::
forward
_iterator_tag
,
node_iterator_value
<
V
>
>
node_iterator_value
<
V
>
>
{
{
private:
private:
...
@@ -67,11 +67,13 @@ namespace YAML
...
@@ -67,11 +67,13 @@ namespace YAML
node_iterator_base
()
:
m_type
(
iterator_type
::
None
)
{}
node_iterator_base
()
:
m_type
(
iterator_type
::
None
)
{}
explicit
node_iterator_base
(
SeqIter
seqIt
)
:
m_type
(
iterator_type
::
Sequence
),
m_seqIt
(
seqIt
)
{}
explicit
node_iterator_base
(
SeqIter
seqIt
)
:
m_type
(
iterator_type
::
Sequence
),
m_seqIt
(
seqIt
)
{}
explicit
node_iterator_base
(
MapIter
mapIt
)
:
m_type
(
iterator_type
::
Map
),
m_mapIt
(
mapIt
)
{}
explicit
node_iterator_base
(
MapIter
mapIt
,
MapIter
mapEnd
)
:
m_type
(
iterator_type
::
Map
),
m_mapIt
(
mapIt
),
m_mapEnd
(
mapEnd
)
{
m_mapIt
=
increment_until_defined
(
m_mapIt
);
}
template
<
typename
W
>
template
<
typename
W
>
node_iterator_base
(
const
node_iterator_base
<
W
>&
rhs
,
typename
boost
::
enable_if
<
boost
::
is_convertible
<
W
*
,
V
*>
,
enabler
>::
type
=
enabler
())
node_iterator_base
(
const
node_iterator_base
<
W
>&
rhs
,
typename
boost
::
enable_if
<
boost
::
is_convertible
<
W
*
,
V
*>
,
enabler
>::
type
=
enabler
())
:
m_type
(
rhs
.
m_type
),
m_seqIt
(
rhs
.
m_seqIt
),
m_mapIt
(
rhs
.
m_mapIt
)
{}
:
m_type
(
rhs
.
m_type
),
m_seqIt
(
rhs
.
m_seqIt
),
m_mapIt
(
rhs
.
m_mapIt
)
,
m_mapEnd
(
rhs
.
m_mapEnd
)
{}
private:
private:
friend
class
boost
::
iterator_core_access
;
friend
class
boost
::
iterator_core_access
;
...
@@ -93,19 +95,16 @@ namespace YAML
...
@@ -93,19 +95,16 @@ namespace YAML
void
increment
()
{
void
increment
()
{
switch
(
m_type
)
{
switch
(
m_type
)
{
case
iterator_type
::
None
:
break
;
case
iterator_type
::
None
:
break
;
case
iterator_type
::
Sequence
:
++
m_seqIt
;
break
;
case
iterator_type
::
Sequence
:
case
iterator_type
::
Map
:
++
m_mapIt
;
break
;
++
m_seqIt
;
}
break
;
}
case
iterator_type
::
Map
:
++
m_mapIt
;
void
decrement
()
{
m_mapIt
=
increment_until_defined
(
m_mapIt
);
switch
(
m_type
)
{
break
;
case
iterator_type
::
None
:
break
;
case
iterator_type
::
Sequence
:
--
m_seqIt
;
break
;
case
iterator_type
::
Map
:
--
m_mapIt
;
break
;
}
}
}
}
value_type
dereference
()
const
{
value_type
dereference
()
const
{
switch
(
m_type
)
{
switch
(
m_type
)
{
case
iterator_type
::
None
:
return
value_type
();
case
iterator_type
::
None
:
return
value_type
();
...
@@ -115,11 +114,21 @@ namespace YAML
...
@@ -115,11 +114,21 @@ namespace YAML
return
value_type
();
return
value_type
();
}
}
MapIter
increment_until_defined
(
MapIter
it
)
{
while
(
it
!=
m_mapEnd
&&
!
is_defined
(
it
))
++
it
;
return
it
;
}
bool
is_defined
(
MapIter
it
)
const
{
return
it
->
first
->
is_defined
()
&&
it
->
second
->
is_defined
();
}
private:
private:
typename
iterator_type
::
value
m_type
;
typename
iterator_type
::
value
m_type
;
SeqIter
m_seqIt
;
SeqIter
m_seqIt
;
MapIter
m_mapIt
;
MapIter
m_mapIt
,
m_mapEnd
;
};
};
typedef
node_iterator_base
<
node
>
node_iterator
;
typedef
node_iterator_base
<
node
>
node_iterator
;
...
...
src/node/detail/node_data.cpp
View file @
a308b73e
...
@@ -106,7 +106,7 @@ namespace YAML
...
@@ -106,7 +106,7 @@ namespace YAML
switch
(
m_type
)
{
switch
(
m_type
)
{
case
NodeType
::
Sequence
:
return
const_node_iterator
(
m_sequence
.
begin
());
case
NodeType
::
Sequence
:
return
const_node_iterator
(
m_sequence
.
begin
());
case
NodeType
::
Map
:
return
const_node_iterator
(
m_map
.
begin
());
case
NodeType
::
Map
:
return
const_node_iterator
(
m_map
.
begin
()
,
m_map
.
end
()
);
default:
return
const_node_iterator
();
default:
return
const_node_iterator
();
}
}
}
}
...
@@ -118,7 +118,7 @@ namespace YAML
...
@@ -118,7 +118,7 @@ namespace YAML
switch
(
m_type
)
{
switch
(
m_type
)
{
case
NodeType
::
Sequence
:
return
node_iterator
(
m_sequence
.
begin
());
case
NodeType
::
Sequence
:
return
node_iterator
(
m_sequence
.
begin
());
case
NodeType
::
Map
:
return
node_iterator
(
m_map
.
begin
());
case
NodeType
::
Map
:
return
node_iterator
(
m_map
.
begin
()
,
m_map
.
end
()
);
default:
return
node_iterator
();
default:
return
node_iterator
();
}
}
}
}
...
@@ -130,7 +130,7 @@ namespace YAML
...
@@ -130,7 +130,7 @@ namespace YAML
switch
(
m_type
)
{
switch
(
m_type
)
{
case
NodeType
::
Sequence
:
return
const_node_iterator
(
m_sequence
.
end
());
case
NodeType
::
Sequence
:
return
const_node_iterator
(
m_sequence
.
end
());
case
NodeType
::
Map
:
return
const_node_iterator
(
m_map
.
end
());
case
NodeType
::
Map
:
return
const_node_iterator
(
m_map
.
end
(),
m_map
.
end
());
default:
return
const_node_iterator
();
default:
return
const_node_iterator
();
}
}
}
}
...
@@ -142,7 +142,7 @@ namespace YAML
...
@@ -142,7 +142,7 @@ namespace YAML
switch
(
m_type
)
{
switch
(
m_type
)
{
case
NodeType
::
Sequence
:
return
node_iterator
(
m_sequence
.
end
());
case
NodeType
::
Sequence
:
return
node_iterator
(
m_sequence
.
end
());
case
NodeType
::
Map
:
return
node_iterator
(
m_map
.
end
());
case
NodeType
::
Map
:
return
node_iterator
(
m_map
.
end
(),
m_map
.
end
());
default:
return
node_iterator
();
default:
return
node_iterator
();
}
}
}
}
...
...
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