CCF
Loading...
Searching...
No Matches
src
ds
nonstd.h
Go to the documentation of this file.
1
// Copyright (c) Microsoft Corporation. All rights reserved.
2
// Licensed under the Apache 2.0 License.
3
#pragma once
4
#include <string>
5
6
namespace
ccf::nonstd
7
{
8
// Iterators for map-keys and map-values
9
template
<
typename
TMapIterator>
10
class
KeyIterator
:
public
TMapIterator
11
{
12
public
:
13
KeyIterator
() : TMapIterator() {}
14
KeyIterator
(TMapIterator it) : TMapIterator(it) {}
15
16
using
Key
=
17
typename
std::iterator_traits<TMapIterator>::value_type::first_type;
18
using
value_type
=
Key
;
19
20
Key
*
operator->
()
21
{
22
return
TMapIterator::operator->()->first;
23
}
24
25
Key
operator*
()
26
{
27
return
TMapIterator::operator*().first;
28
}
29
};
30
31
template
<
typename
TMapIterator>
32
class
ValueIterator
:
public
TMapIterator
33
{
34
public
:
35
ValueIterator
() : TMapIterator() {}
36
ValueIterator
(TMapIterator it) : TMapIterator(it) {}
37
38
using
Value
=
39
typename
std::iterator_traits<TMapIterator>::value_type::second_type;
40
using
value_type
=
Value
;
41
42
Value
*
operator->
()
43
{
44
return
TMapIterator::operator->()->second;
45
}
46
47
Value
operator*
()
48
{
49
return
TMapIterator::operator*().second;
50
}
51
};
52
}
ccf::nonstd::KeyIterator
Definition
nonstd.h:11
ccf::nonstd::KeyIterator::KeyIterator
KeyIterator(TMapIterator it)
Definition
nonstd.h:14
ccf::nonstd::KeyIterator::Key
typename std::iterator_traits< TMapIterator >::value_type::first_type Key
Definition
nonstd.h:17
ccf::nonstd::KeyIterator::value_type
Key value_type
Definition
nonstd.h:18
ccf::nonstd::KeyIterator::KeyIterator
KeyIterator()
Definition
nonstd.h:13
ccf::nonstd::KeyIterator::operator*
Key operator*()
Definition
nonstd.h:25
ccf::nonstd::KeyIterator::operator->
Key * operator->()
Definition
nonstd.h:20
ccf::nonstd::ValueIterator
Definition
nonstd.h:33
ccf::nonstd::ValueIterator::operator->
Value * operator->()
Definition
nonstd.h:42
ccf::nonstd::ValueIterator::value_type
Value value_type
Definition
nonstd.h:40
ccf::nonstd::ValueIterator::Value
typename std::iterator_traits< TMapIterator >::value_type::second_type Value
Definition
nonstd.h:39
ccf::nonstd::ValueIterator::ValueIterator
ValueIterator()
Definition
nonstd.h:35
ccf::nonstd::ValueIterator::operator*
Value operator*()
Definition
nonstd.h:47
ccf::nonstd::ValueIterator::ValueIterator
ValueIterator(TMapIterator it)
Definition
nonstd.h:36
ccf::nonstd
Definition
nonstd.h:24
Generated by
1.9.8