forked from boostorg/iterator
added input and output traversal tags
[SVN r319]
This commit is contained in:
@@ -26,6 +26,8 @@ namespace boost {
|
|||||||
virtual public readable_iterator_tag { };
|
virtual public readable_iterator_tag { };
|
||||||
|
|
||||||
// Traversal Categories
|
// Traversal Categories
|
||||||
|
struct input_traversal_tag { };
|
||||||
|
struct output_traversal_tag { };
|
||||||
struct forward_traversal_tag { };
|
struct forward_traversal_tag { };
|
||||||
struct bidirectional_traversal_tag : public forward_traversal_tag { };
|
struct bidirectional_traversal_tag : public forward_traversal_tag { };
|
||||||
struct random_access_traversal_tag : public bidirectional_traversal_tag { };
|
struct random_access_traversal_tag : public bidirectional_traversal_tag { };
|
||||||
@@ -102,7 +104,15 @@ namespace boost {
|
|||||||
typename ct_if<
|
typename ct_if<
|
||||||
is_convertible<Category*, std::bidirectional_iterator_tag*>::value,
|
is_convertible<Category*, std::bidirectional_iterator_tag*>::value,
|
||||||
bidirectional_traversal_tag,
|
bidirectional_traversal_tag,
|
||||||
forward_traversal_tag
|
typename ct_if<
|
||||||
|
is_convertible<Category*, std::forward_iterator_tag*>::value,
|
||||||
|
forward_traversal_tag,
|
||||||
|
typename ct_if<
|
||||||
|
is_convertible<Category*, std::input_iterator_tag*>::value,
|
||||||
|
input_traversal_tag,
|
||||||
|
output_traversal_tag
|
||||||
|
>::type
|
||||||
|
>::type
|
||||||
>::type
|
>::type
|
||||||
>::type type;
|
>::type type;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user