Coverage Report

Created: 2026-08-14 06:27

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/boost/boost/iterator/iterator_facade.hpp
Line
Count
Source
1
// (C) Copyright David Abrahams 2002.
2
// (C) Copyright Jeremy Siek    2002.
3
// (C) Copyright Thomas Witt    2002.
4
// Distributed under the Boost Software License, Version 1.0. (See
5
// accompanying file LICENSE_1_0.txt or copy at
6
// http://www.boost.org/LICENSE_1_0.txt)
7
#ifndef BOOST_ITERATOR_FACADE_23022003THW_HPP
8
#define BOOST_ITERATOR_FACADE_23022003THW_HPP
9
10
#include <cstddef>
11
#include <memory>
12
#include <utility>
13
#include <type_traits>
14
15
#include <boost/config.hpp>
16
#include <boost/mp11/utility.hpp>
17
18
#include <boost/iterator/interoperable.hpp>
19
#include <boost/iterator/iterator_traits.hpp>
20
#include <boost/iterator/iterator_categories.hpp>
21
#include <boost/iterator/detail/facade_iterator_category.hpp>
22
#include <boost/iterator/detail/type_traits/conjunction.hpp>
23
#include <boost/iterator/detail/type_traits/negation.hpp>
24
25
namespace boost {
26
namespace iterators {
27
28
// This forward declaration is required for the friend declaration
29
// in iterator_core_access
30
template<
31
    typename Derived,
32
    typename Value,
33
    typename CategoryOrTraversal,
34
    typename Reference   = Value&,
35
    typename Difference  = std::ptrdiff_t
36
>
37
class iterator_facade;
38
39
namespace detail {
40
41
// The type trait checks if the category or traversal is at least as advanced as the specified required traversal
42
template< typename CategoryOrTraversal, typename Required >
43
struct is_traversal_at_least :
44
    public std::is_convertible< typename iterator_category_to_traversal< CategoryOrTraversal >::type, Required >
45
{};
46
47
//
48
// enable if for use in operator implementation.
49
//
50
template<
51
    typename Facade1,
52
    typename Facade2,
53
    typename Return
54
>
55
struct enable_if_interoperable :
56
    public std::enable_if<
57
        is_interoperable< Facade1, Facade2 >::value,
58
        Return
59
    >
60
{};
61
62
//
63
// enable if for use in implementation of operators specific for random access traversal.
64
//
65
template<
66
    typename Facade1,
67
    typename Facade2,
68
    typename Return
69
>
70
struct enable_if_interoperable_and_random_access_traversal :
71
    public std::enable_if<
72
        detail::conjunction<
73
            is_interoperable< Facade1, Facade2 >,
74
            is_traversal_at_least< typename iterator_category< Facade1 >::type, random_access_traversal_tag >,
75
            is_traversal_at_least< typename iterator_category< Facade2 >::type, random_access_traversal_tag >
76
        >::value,
77
        Return
78
    >
79
{};
80
81
//
82
// Generates associated types for an iterator_facade with the
83
// given parameters.
84
//
85
template<
86
    typename ValueParam,
87
    typename CategoryOrTraversal,
88
    typename Reference,
89
    typename Difference
90
>
91
struct iterator_facade_types
92
{
93
    using iterator_category = typename facade_iterator_category<
94
        CategoryOrTraversal, ValueParam, Reference
95
    >::type;
96
97
    using value_type = typename std::remove_const< ValueParam >::type;
98
99
    // Not the real associated pointer type
100
    using pointer = typename std::add_pointer<
101
        typename std::conditional<
102
            boost::iterators::detail::iterator_writability_disabled< ValueParam, Reference >::value,
103
            const value_type,
104
            value_type
105
        >::type
106
    >::type;
107
};
108
109
// iterators whose dereference operators reference the same value
110
// for all iterators into the same sequence (like many input
111
// iterators) need help with their postfix ++: the referenced
112
// value must be read and stored away before the increment occurs
113
// so that *a++ yields the originally referenced element and not
114
// the next one.
115
template< typename Iterator >
116
class postfix_increment_proxy
117
{
118
    using value_type = typename iterator_value< Iterator >::type;
119
120
public:
121
    explicit postfix_increment_proxy(Iterator const& x) :
122
        stored_iterator(x),
123
        stored_value(*x)
124
    {}
125
126
    // Returning a mutable reference allows nonsense like
127
    // (*r++).mutate(), but it imposes fewer assumptions about the
128
    // behavior of the value_type.  In particular, recall that
129
    // (*r).mutate() is legal if operator* returns by value.
130
    // Provides readability of *r++
131
    value_type& operator*() const
132
    {
133
        return stored_value;
134
    }
135
136
    // Provides X(r++)
137
    operator Iterator const&() const
138
    {
139
        return stored_iterator;
140
    }
141
142
    // Provides (r++)->foo()
143
    value_type* operator->() const
144
    {
145
        return std::addressof(stored_value);
146
    }
147
148
private:
149
    Iterator stored_iterator;
150
    mutable value_type stored_value;
151
};
152
153
154
template< typename Iterator >
155
class writable_postfix_increment_dereference_proxy;
156
157
template< typename T >
158
struct is_not_writable_postfix_increment_dereference_proxy :
159
    public std::true_type
160
{};
161
162
template< typename Iterator >
163
struct is_not_writable_postfix_increment_dereference_proxy<
164
    writable_postfix_increment_dereference_proxy< Iterator >
165
> :
166
    public std::false_type
167
{};
168
169
template< typename Iterator >
170
class writable_postfix_increment_proxy;
171
172
//
173
// In general, we can't determine that such an iterator isn't
174
// writable -- we also need to store a copy of the old iterator so
175
// that it can be written into.
176
template< typename Iterator >
177
class writable_postfix_increment_dereference_proxy
178
{
179
    friend class writable_postfix_increment_proxy< Iterator >;
180
181
    using value_type = typename iterator_value< Iterator >::type;
182
183
public:
184
    explicit writable_postfix_increment_dereference_proxy(Iterator const& x) :
185
        stored_iterator(x),
186
        stored_value(*x)
187
    {}
188
189
    // Provides readability of *r++
190
    operator value_type&() const
191
    {
192
        return this->stored_value;
193
    }
194
195
    template< typename OtherIterator >
196
    writable_postfix_increment_dereference_proxy const&
197
    operator=(writable_postfix_increment_dereference_proxy< OtherIterator > const& x) const
198
    {
199
        typedef typename iterator_value< OtherIterator >::type other_value_type;
200
        *this->stored_iterator = static_cast< other_value_type& >(x);
201
        return *this;
202
    }
203
204
    // Provides writability of *r++
205
    template< typename T >
206
    typename std::enable_if<
207
        is_not_writable_postfix_increment_dereference_proxy< T >::value,
208
        writable_postfix_increment_dereference_proxy const&
209
    >::type operator=(T&& x) const
210
    {
211
        *this->stored_iterator = static_cast< T&& >(x);
212
        return *this;
213
    }
214
215
private:
216
    Iterator stored_iterator;
217
    mutable value_type stored_value;
218
};
219
220
template< typename Iterator >
221
class writable_postfix_increment_proxy
222
{
223
    using value_type = typename iterator_value< Iterator >::type;
224
225
public:
226
    explicit writable_postfix_increment_proxy(Iterator const& x) :
227
        dereference_proxy(x)
228
    {}
229
230
    writable_postfix_increment_dereference_proxy< Iterator > const&
231
    operator*() const
232
    {
233
        return dereference_proxy;
234
    }
235
236
    // Provides X(r++)
237
    operator Iterator const&() const
238
    {
239
        return dereference_proxy.stored_iterator;
240
    }
241
242
    // Provides (r++)->foo()
243
    value_type* operator->() const
244
    {
245
        return std::addressof(dereference_proxy.stored_value);
246
    }
247
248
private:
249
    writable_postfix_increment_dereference_proxy< Iterator > dereference_proxy;
250
};
251
252
template< typename Reference, typename Value >
253
struct is_non_proxy_reference :
254
    public std::is_convertible<
255
        typename std::remove_reference< Reference >::type const volatile*,
256
        Value const volatile*
257
    >
258
{};
259
260
// A metafunction to choose the result type of postfix ++
261
//
262
// Because the C++98 input iterator requirements say that *r++ has
263
// type T (value_type), implementations of some standard
264
// algorithms like lexicographical_compare may use constructions
265
// like:
266
//
267
//          *r++ < *s++
268
//
269
// If *r++ returns a proxy (as required if r is writable but not
270
// multipass), this sort of expression will fail unless the proxy
271
// supports the operator<.  Since there are any number of such
272
// operations, we're not going to try to support them.  Therefore,
273
// even if r++ returns a proxy, *r++ will only return a proxy if
274
// *r also returns a proxy.
275
template< typename Iterator, typename Value, typename Reference, typename CategoryOrTraversal >
276
struct postfix_increment_result
277
{
278
    using type = mp11::mp_eval_if_not<
279
        detail::conjunction<
280
            // A proxy is only needed for readable iterators
281
            std::is_convertible<
282
                Reference,
283
                // Use add_lvalue_reference to form `reference to Value` due to
284
                // some (strict) C++03 compilers (e.g. `gcc -std=c++03`) reject
285
                // 'reference-to-reference' in the template which described in CWG
286
                // DR106.
287
                // http://www.open-std.org/Jtc1/sc22/wg21/docs/cwg_defects.html#106
288
                typename std::add_lvalue_reference< Value const >::type
289
            >,
290
291
            // No multipass iterator can have values that disappear
292
            // before positions can be re-visited
293
            detail::negation<
294
                detail::is_traversal_at_least< CategoryOrTraversal, forward_traversal_tag >
295
            >
296
        >,
297
        Iterator,
298
        mp11::mp_if,
299
            is_non_proxy_reference< Reference, Value >,
300
            postfix_increment_proxy< Iterator >,
301
            writable_postfix_increment_proxy< Iterator >
302
    >;
303
};
304
305
// operator->() needs special support for input iterators to strictly meet the
306
// standard's requirements. If *i is not a reference type, we must still
307
// produce an lvalue to which a pointer can be formed.  We do that by
308
// returning a proxy object containing an instance of the reference object.
309
template< typename Reference, typename Pointer >
310
struct operator_arrow_dispatch // proxy references
311
{
312
    struct proxy
313
    {
314
        explicit proxy(Reference const& x) : m_ref(x) {}
315
        Reference* operator->() { return std::addressof(m_ref); }
316
        // This function is needed for MWCW and BCC, which won't call
317
        // operator-> again automatically per 13.3.1.2 para 8
318
        operator Reference*() { return std::addressof(m_ref); }
319
        Reference m_ref;
320
    };
321
322
    using result_type = proxy;
323
324
    static result_type apply(Reference const& x)
325
    {
326
        return result_type(x);
327
    }
328
};
329
330
template< typename T, typename Pointer >
331
struct operator_arrow_dispatch< T&, Pointer > // "real" references
332
{
333
    using result_type = Pointer;
334
335
    static result_type apply(T& x)
336
17.1M
    {
337
17.1M
        return std::addressof(x);
338
17.1M
    }
Unexecuted instantiation: boost::iterators::detail::operator_arrow_dispatch<boost::filesystem::directory_entry&, boost::filesystem::directory_entry*>::apply(boost::filesystem::directory_entry&)
Unexecuted instantiation: boost::iterators::detail::operator_arrow_dispatch<boost::filesystem::path const&, boost::filesystem::path const*>::apply(boost::filesystem::path const&)
boost::iterators::detail::operator_arrow_dispatch<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >*>::apply(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&)
Line
Count
Source
336
16.7M
    {
337
16.7M
        return std::addressof(x);
338
16.7M
    }
boost::iterators::detail::operator_arrow_dispatch<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const*>::apply(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&)
Line
Count
Source
336
403k
    {
337
403k
        return std::addressof(x);
338
403k
    }
Unexecuted instantiation: boost::iterators::detail::operator_arrow_dispatch<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const*>::apply(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
339
};
340
341
// A proxy return type for operator[], needed to deal with
342
// iterators that may invalidate referents upon destruction.
343
// Consider the temporary iterator in *(a + n)
344
template< typename Iterator >
345
class operator_brackets_proxy
346
{
347
    // Iterator is actually an iterator_facade, so we do not have to
348
    // go through iterator_traits to access the traits.
349
    using reference = typename Iterator::reference;
350
351
public:
352
    explicit operator_brackets_proxy(Iterator const& iter) noexcept(std::is_nothrow_copy_constructible< Iterator >::value) :
353
        m_iter(iter)
354
    {}
355
356
    operator reference() const noexcept(noexcept(*std::declval< Iterator const& >()))
357
    {
358
        return *m_iter;
359
    }
360
361
    template< typename T >
362
    typename std::enable_if<
363
        detail::conjunction<
364
            detail::negation<
365
                std::is_same<
366
                    operator_brackets_proxy< Iterator >,
367
                    typename std::remove_cv< typename std::remove_reference< T >::type >::type
368
                >
369
            >,
370
            std::is_assignable< reference, T&& >
371
        >::value,
372
        operator_brackets_proxy&
373
    >::type operator= (T&& val) noexcept(noexcept(*std::declval< Iterator& >() = std::declval< T&& >()))
374
    {
375
        *m_iter = static_cast< T&& >(val);
376
        return *this;
377
    }
378
379
    // Provides it[n]->foo(). Leverages chaining of operator->.
380
    reference operator->() const noexcept(noexcept(*std::declval< Iterator const& >()))
381
    {
382
        return *m_iter;
383
    }
384
385
    // Provides (*it[n]).foo()
386
    template< typename Ref = reference, typename Result = decltype(*std::declval< Ref >()) >
387
    Result operator*() const noexcept(noexcept(**std::declval< Iterator const& >()))
388
    {
389
        return **m_iter;
390
    }
391
392
private:
393
    Iterator m_iter;
394
};
395
396
// A binary metafunction class that always returns bool.
397
template< typename Iterator1, typename Iterator2 >
398
using always_bool_t = bool;
399
400
template< typename Iterator1, typename Iterator2 >
401
using choose_difference_type_t = typename std::conditional<
402
    std::is_convertible< Iterator2, Iterator1 >::value,
403
    iterator_difference< Iterator1 >,
404
    iterator_difference< Iterator2 >
405
>::type::type;
406
407
template<
408
    typename Derived,
409
    typename Value,
410
    typename CategoryOrTraversal,
411
    typename Reference,
412
    typename Difference,
413
    bool IsBidirectionalTraversal,
414
    bool IsRandomAccessTraversal
415
>
416
class iterator_facade_base;
417
418
} // namespace detail
419
420
421
// Macros which describe the declarations of binary operators
422
#define BOOST_ITERATOR_FACADE_INTEROP_HEAD_IMPL(prefix, op, result_type, enabler)   \
423
    template<                                                           \
424
        typename Derived1, typename V1, typename TC1, typename Reference1, typename Difference1, \
425
        typename Derived2, typename V2, typename TC2, typename Reference2, typename Difference2  \
426
    >                                                                   \
427
    prefix typename enabler<                                            \
428
        Derived1, Derived2,                                             \
429
        result_type< Derived1, Derived2 >                               \
430
    >::type                                                             \
431
    operator op(                                                        \
432
        iterator_facade< Derived1, V1, TC1, Reference1, Difference1 > const& lhs,   \
433
        iterator_facade< Derived2, V2, TC2, Reference2, Difference2 > const& rhs)
434
435
#define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type)       \
436
    BOOST_ITERATOR_FACADE_INTEROP_HEAD_IMPL(prefix, op, result_type, boost::iterators::detail::enable_if_interoperable)
437
438
#define BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS_HEAD(prefix, op, result_type)       \
439
    BOOST_ITERATOR_FACADE_INTEROP_HEAD_IMPL(prefix, op, result_type, boost::iterators::detail::enable_if_interoperable_and_random_access_traversal)
440
441
#define BOOST_ITERATOR_FACADE_PLUS_HEAD(prefix,args)                \
442
    template< typename Derived, typename V, typename TC, typename R, typename D >   \
443
    prefix typename std::enable_if<                                 \
444
        boost::iterators::detail::is_traversal_at_least<            \
445
            TC,                                                     \
446
            boost::iterators::random_access_traversal_tag           \
447
        >::value,                                                   \
448
        Derived                                                     \
449
    >::type operator+ args
450
451
//
452
// Helper class for granting access to the iterator core interface.
453
//
454
// The simple core interface is used by iterator_facade. The core
455
// interface of a user/library defined iterator type should not be made public
456
// so that it does not clutter the public interface. Instead iterator_core_access
457
// should be made friend so that iterator_facade can access the core
458
// interface through iterator_core_access.
459
//
460
class iterator_core_access
461
{
462
    template< typename I, typename V, typename TC, typename R, typename D >
463
    friend class iterator_facade;
464
    template< typename I, typename V, typename TC, typename R, typename D, bool IsBidirectionalTraversal, bool IsRandomAccessTraversal >
465
    friend class detail::iterator_facade_base;
466
467
#define BOOST_ITERATOR_FACADE_RELATION(op)                                \
468
    BOOST_ITERATOR_FACADE_INTEROP_HEAD(friend, op, boost::iterators::detail::always_bool_t);
469
470
    BOOST_ITERATOR_FACADE_RELATION(==)
471
    BOOST_ITERATOR_FACADE_RELATION(!=)
472
473
#undef BOOST_ITERATOR_FACADE_RELATION
474
475
#define BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(op)                                \
476
    BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS_HEAD(friend, op, boost::iterators::detail::always_bool_t);
477
478
    BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(<)
479
    BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(>)
480
    BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(<=)
481
    BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(>=)
482
483
#undef BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION
484
485
    BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS_HEAD(friend, -, boost::iterators::detail::choose_difference_type_t);
486
487
    BOOST_ITERATOR_FACADE_PLUS_HEAD(
488
        friend inline,
489
        (iterator_facade< Derived, V, TC, R, D > const&, typename Derived::difference_type)
490
    );
491
492
    BOOST_ITERATOR_FACADE_PLUS_HEAD(
493
        friend inline,
494
        (typename Derived::difference_type, iterator_facade< Derived, V, TC, R, D > const&)
495
    );
496
497
    template< typename Facade >
498
    static typename Facade::reference dereference(Facade const& f)
499
28.0M
    {
500
28.0M
        return f.dereference();
501
28.0M
    }
Unexecuted instantiation: boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>::reference boost::iterators::iterator_core_access::dereference<boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> >(boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> const&)
Unexecuted instantiation: boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >::reference boost::iterators::iterator_core_access::dereference<boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> > >(boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> > const&)
Unexecuted instantiation: boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >::reference boost::iterators::iterator_core_access::dereference<boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> > >(boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> > const&)
Unexecuted instantiation: boost::filesystem::path_detail::path_iterator::reference boost::iterators::iterator_core_access::dereference<boost::filesystem::path_detail::path_iterator>(boost::filesystem::path_detail::path_iterator const&)
Unexecuted instantiation: boost::filesystem::directory_iterator::reference boost::iterators::iterator_core_access::dereference<boost::filesystem::directory_iterator>(boost::filesystem::directory_iterator const&)
boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator::reference boost::iterators::iterator_core_access::dereference<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator>(boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator const&)
Line
Count
Source
499
18.9M
    {
500
18.9M
        return f.dereference();
501
18.9M
    }
boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator::reference boost::iterators::iterator_core_access::dereference<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator>(boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator const&)
Line
Count
Source
499
403k
    {
500
403k
        return f.dereference();
501
403k
    }
boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator::reference boost::iterators::iterator_core_access::dereference<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator>(boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator const&)
Line
Count
Source
499
6.77M
    {
500
6.77M
        return f.dereference();
501
6.77M
    }
boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::reference boost::iterators::iterator_core_access::dereference<boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
Line
Count
Source
499
819
    {
500
819
        return f.dereference();
501
819
    }
boost::program_options::detail::common_config_file_iterator::reference boost::iterators::iterator_core_access::dereference<boost::program_options::detail::common_config_file_iterator>(boost::program_options::detail::common_config_file_iterator const&)
Line
Count
Source
499
1.90M
    {
500
1.90M
        return f.dereference();
501
1.90M
    }
Unexecuted instantiation: boost::environment_iterator::reference boost::iterators::iterator_core_access::dereference<boost::environment_iterator>(boost::environment_iterator const&)
boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::reference boost::iterators::iterator_core_access::dereference<boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
Line
Count
Source
499
185
    {
500
185
        return f.dereference();
501
185
    }
Unexecuted instantiation: boost::token_iterator<boost::char_separator<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::__wrap_iter<wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::reference boost::iterators::iterator_core_access::dereference<boost::token_iterator<boost::char_separator<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::__wrap_iter<wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(boost::token_iterator<boost::char_separator<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::__wrap_iter<wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > const&)
Unexecuted instantiation: boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>::reference boost::iterators::iterator_core_access::dereference<boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> >(boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> const&)
502
503
    template< typename Facade >
504
    static void increment(Facade& f)
505
10.9M
    {
506
10.9M
        f.increment();
507
10.9M
    }
Unexecuted instantiation: void boost::iterators::iterator_core_access::increment<boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> >(boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>&)
Unexecuted instantiation: void boost::iterators::iterator_core_access::increment<boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> > >(boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >&)
Unexecuted instantiation: void boost::iterators::iterator_core_access::increment<boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> > >(boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >&)
Unexecuted instantiation: void boost::iterators::iterator_core_access::increment<boost::filesystem::path_detail::path_iterator>(boost::filesystem::path_detail::path_iterator&)
void boost::iterators::iterator_core_access::increment<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator>(boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator&)
Line
Count
Source
505
2.26M
    {
506
2.26M
        f.increment();
507
2.26M
    }
void boost::iterators::iterator_core_access::increment<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator>(boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator&)
Line
Count
Source
505
6.77M
    {
506
6.77M
        f.increment();
507
6.77M
    }
void boost::iterators::iterator_core_access::increment<boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
505
715
    {
506
715
        f.increment();
507
715
    }
void boost::iterators::iterator_core_access::increment<boost::program_options::detail::common_config_file_iterator>(boost::program_options::detail::common_config_file_iterator&)
Line
Count
Source
505
1.90M
    {
506
1.90M
        f.increment();
507
1.90M
    }
Unexecuted instantiation: void boost::iterators::iterator_core_access::increment<boost::environment_iterator>(boost::environment_iterator&)
void boost::iterators::iterator_core_access::increment<boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
505
159
    {
506
159
        f.increment();
507
159
    }
Unexecuted instantiation: void boost::iterators::iterator_core_access::increment<boost::token_iterator<boost::char_separator<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::__wrap_iter<wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(boost::token_iterator<boost::char_separator<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::__wrap_iter<wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Unexecuted instantiation: void boost::iterators::iterator_core_access::increment<boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> >(boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>&)
508
509
    template< typename Facade >
510
    static void decrement(Facade& f)
511
0
    {
512
0
        f.decrement();
513
0
    }
514
515
    template< typename Facade1, typename Facade2 >
516
    static bool equal(Facade1 const& f1, Facade2 const& f2, std::true_type)
517
11.8M
    {
518
11.8M
        return f1.equal(f2);
519
11.8M
    }
Unexecuted instantiation: bool boost::iterators::iterator_core_access::equal<boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> >(boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> const&, boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> const&, std::__1::integral_constant<bool, true>)
Unexecuted instantiation: bool boost::iterators::iterator_core_access::equal<boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >, boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> > >(boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> > const&, boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> > const&, std::__1::integral_constant<bool, true>)
Unexecuted instantiation: bool boost::iterators::iterator_core_access::equal<boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >, boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> > >(boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> > const&, boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> > const&, std::__1::integral_constant<bool, true>)
Unexecuted instantiation: bool boost::iterators::iterator_core_access::equal<boost::filesystem::path_detail::path_iterator, boost::filesystem::path_detail::path_iterator>(boost::filesystem::path_detail::path_iterator const&, boost::filesystem::path_detail::path_iterator const&, std::__1::integral_constant<bool, true>)
bool boost::iterators::iterator_core_access::equal<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator>(boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator const&, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator const&, std::__1::integral_constant<bool, true>)
Line
Count
Source
517
503k
    {
518
503k
        return f1.equal(f2);
519
503k
    }
bool boost::iterators::iterator_core_access::equal<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator>(boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator const&, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator const&, std::__1::integral_constant<bool, true>)
Line
Count
Source
517
2.27M
    {
518
2.27M
        return f1.equal(f2);
519
2.27M
    }
bool boost::iterators::iterator_core_access::equal<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator>(boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator const&, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator const&, std::__1::integral_constant<bool, true>)
Line
Count
Source
517
7.12M
    {
518
7.12M
        return f1.equal(f2);
519
7.12M
    }
bool boost::iterators::iterator_core_access::equal<boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, std::__1::integral_constant<bool, true>)
Line
Count
Source
517
1.18k
    {
518
1.18k
        return f1.equal(f2);
519
1.18k
    }
bool boost::iterators::iterator_core_access::equal<boost::program_options::detail::common_config_file_iterator, boost::program_options::detail::common_config_file_iterator>(boost::program_options::detail::common_config_file_iterator const&, boost::program_options::detail::common_config_file_iterator const&, std::__1::integral_constant<bool, true>)
Line
Count
Source
517
1.90M
    {
518
1.90M
        return f1.equal(f2);
519
1.90M
    }
Unexecuted instantiation: bool boost::iterators::iterator_core_access::equal<boost::environment_iterator, boost::environment_iterator>(boost::environment_iterator const&, boost::environment_iterator const&, std::__1::integral_constant<bool, true>)
bool boost::iterators::iterator_core_access::equal<boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, std::__1::integral_constant<bool, true>)
Line
Count
Source
517
227
    {
518
227
        return f1.equal(f2);
519
227
    }
Unexecuted instantiation: bool boost::iterators::iterator_core_access::equal<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assoc_iterator, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assoc_iterator>(boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assoc_iterator const&, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assoc_iterator const&, std::__1::integral_constant<bool, true>)
Unexecuted instantiation: bool boost::iterators::iterator_core_access::equal<boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> >(boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> const&, boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default> const&, std::__1::integral_constant<bool, true>)
520
521
    template< typename Facade1, typename Facade2 >
522
    static bool equal(Facade1 const& f1, Facade2 const& f2, std::false_type)
523
    {
524
        return f2.equal(f1);
525
    }
526
527
    template< typename Facade >
528
    static void advance(Facade& f, typename Facade::difference_type n)
529
    {
530
        f.advance(n);
531
    }
532
533
    template< typename Facade1, typename Facade2 >
534
    static typename Facade1::difference_type distance_from(Facade1 const& f1, Facade2 const& f2, std::true_type)
535
49.9k
    {
536
49.9k
        return -f1.distance_to(f2);
537
49.9k
    }
538
539
    template< typename Facade1, typename Facade2 >
540
    static typename Facade2::difference_type distance_from(Facade1 const& f1, Facade2 const& f2, std::false_type)
541
    {
542
        return f2.distance_to(f1);
543
    }
544
545
    //
546
    // Curiously Recurring Template interface.
547
    //
548
    template< typename I, typename V, typename TC, typename R, typename D >
549
    static I& derived(iterator_facade< I, V, TC, R, D >& facade)
550
    {
551
        return *static_cast< I* >(&facade);
552
    }
553
554
    template< typename I, typename V, typename TC, typename R, typename D >
555
    static I const& derived(iterator_facade< I, V, TC, R, D > const& facade)
556
    {
557
        return *static_cast< I const* >(&facade);
558
    }
559
560
    // objects of this class are useless
561
    iterator_core_access() = delete;
562
};
563
564
namespace detail {
565
566
// Implementation for forward traversal iterators
567
template<
568
    typename Derived,
569
    typename Value,
570
    typename CategoryOrTraversal,
571
    typename Reference,
572
    typename Difference
573
>
574
class iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, false, false >
575
{
576
private:
577
    using associated_types = boost::iterators::detail::iterator_facade_types<
578
        Value, CategoryOrTraversal, Reference, Difference
579
    >;
580
581
    using operator_arrow_dispatch_ = boost::iterators::detail::operator_arrow_dispatch<
582
        Reference,
583
        typename associated_types::pointer
584
    >;
585
586
public:
587
    using value_type = typename associated_types::value_type;
588
    using reference = Reference;
589
    using difference_type = Difference;
590
591
    using pointer = typename operator_arrow_dispatch_::result_type;
592
593
    using iterator_category = typename associated_types::iterator_category;
594
595
public:
596
    reference operator*() const
597
28.0M
    {
598
28.0M
        return iterator_core_access::dereference(this->derived());
599
28.0M
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long, false, false>::operator*() const
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long, false, false>::operator*() const
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long, false, false>::operator*() const
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long, false, false>::operator*() const
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::filesystem::directory_iterator, boost::filesystem::directory_entry, boost::iterators::single_pass_traversal_tag, boost::filesystem::directory_entry&, long, false, false>::operator*() const
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long, false, false>::operator*() const
Line
Count
Source
597
18.9M
    {
598
18.9M
        return iterator_core_access::dereference(this->derived());
599
18.9M
    }
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long, false, false>::operator*() const
Line
Count
Source
597
403k
    {
598
403k
        return iterator_core_access::dereference(this->derived());
599
403k
    }
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long, false, false>::operator*() const
Line
Count
Source
597
6.77M
    {
598
6.77M
        return iterator_core_access::dereference(this->derived());
599
6.77M
    }
boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long, false, false>::operator*() const
Line
Count
Source
597
819
    {
598
819
        return iterator_core_access::dereference(this->derived());
599
819
    }
boost::iterators::detail::iterator_facade_base<boost::program_options::detail::common_config_file_iterator, boost::program_options::basic_option<char> const, boost::iterators::forward_traversal_tag, boost::program_options::basic_option<char> const&, long, false, false>::operator*() const
Line
Count
Source
597
1.90M
    {
598
1.90M
        return iterator_core_access::dereference(this->derived());
599
1.90M
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::environment_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const, boost::iterators::forward_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, long, false, false>::operator*() const
boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long, false, false>::operator*() const
Line
Count
Source
597
185
    {
598
185
        return iterator_core_access::dereference(this->derived());
599
185
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::char_separator<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::__wrap_iter<wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > const&, long, false, false>::operator*() const
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long, false, false>::operator*() const
600
601
    pointer operator->() const
602
17.1M
    {
603
17.1M
        return operator_arrow_dispatch_::apply(*this->derived());
604
17.1M
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::filesystem::directory_iterator, boost::filesystem::directory_entry, boost::iterators::single_pass_traversal_tag, boost::filesystem::directory_entry&, long, false, false>::operator->() const
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long, false, false>::operator->() const
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long, false, false>::operator->() const
Line
Count
Source
602
16.7M
    {
603
16.7M
        return operator_arrow_dispatch_::apply(*this->derived());
604
16.7M
    }
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long, false, false>::operator->() const
Line
Count
Source
602
403k
    {
603
403k
        return operator_arrow_dispatch_::apply(*this->derived());
604
403k
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::environment_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const, boost::iterators::forward_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, long, false, false>::operator->() const
605
606
    Derived& operator++()
607
10.9M
    {
608
10.9M
        iterator_core_access::increment(this->derived());
609
10.9M
        return this->derived();
610
10.9M
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long, false, false>::operator++()
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long, false, false>::operator++()
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long, false, false>::operator++()
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long, false, false>::operator++()
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long, false, false>::operator++()
Line
Count
Source
607
2.26M
    {
608
2.26M
        iterator_core_access::increment(this->derived());
609
2.26M
        return this->derived();
610
2.26M
    }
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long, false, false>::operator++()
Line
Count
Source
607
6.77M
    {
608
6.77M
        iterator_core_access::increment(this->derived());
609
6.77M
        return this->derived();
610
6.77M
    }
boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long, false, false>::operator++()
Line
Count
Source
607
715
    {
608
715
        iterator_core_access::increment(this->derived());
609
715
        return this->derived();
610
715
    }
boost::iterators::detail::iterator_facade_base<boost::program_options::detail::common_config_file_iterator, boost::program_options::basic_option<char> const, boost::iterators::forward_traversal_tag, boost::program_options::basic_option<char> const&, long, false, false>::operator++()
Line
Count
Source
607
1.90M
    {
608
1.90M
        iterator_core_access::increment(this->derived());
609
1.90M
        return this->derived();
610
1.90M
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::environment_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const, boost::iterators::forward_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, long, false, false>::operator++()
boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long, false, false>::operator++()
Line
Count
Source
607
159
    {
608
159
        iterator_core_access::increment(this->derived());
609
159
        return this->derived();
610
159
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::char_separator<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::__wrap_iter<wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > const&, long, false, false>::operator++()
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long, false, false>::operator++()
611
612
protected:
613
    //
614
    // Curiously Recurring Template interface.
615
    //
616
    Derived& derived()
617
21.8M
    {
618
21.8M
        return *static_cast< Derived* >(this);
619
21.8M
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long, false, false>::derived()
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long, false, false>::derived()
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long, false, false>::derived()
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long, false, false>::derived()
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long, false, false>::derived()
Line
Count
Source
617
4.53M
    {
618
4.53M
        return *static_cast< Derived* >(this);
619
4.53M
    }
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long, false, false>::derived()
Line
Count
Source
617
13.5M
    {
618
13.5M
        return *static_cast< Derived* >(this);
619
13.5M
    }
boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long, false, false>::derived()
Line
Count
Source
617
1.43k
    {
618
1.43k
        return *static_cast< Derived* >(this);
619
1.43k
    }
boost::iterators::detail::iterator_facade_base<boost::program_options::detail::common_config_file_iterator, boost::program_options::basic_option<char> const, boost::iterators::forward_traversal_tag, boost::program_options::basic_option<char> const&, long, false, false>::derived()
Line
Count
Source
617
3.80M
    {
618
3.80M
        return *static_cast< Derived* >(this);
619
3.80M
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::environment_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const, boost::iterators::forward_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, long, false, false>::derived()
boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long, false, false>::derived()
Line
Count
Source
617
318
    {
618
318
        return *static_cast< Derived* >(this);
619
318
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::char_separator<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::__wrap_iter<wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > const&, long, false, false>::derived()
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long, false, false>::derived()
620
621
    Derived const& derived() const
622
45.2M
    {
623
45.2M
        return *static_cast< Derived const* >(this);
624
45.2M
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long, false, false>::derived() const
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long, false, false>::derived() const
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long, false, false>::derived() const
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long, false, false>::derived() const
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::filesystem::directory_iterator, boost::filesystem::directory_entry, boost::iterators::single_pass_traversal_tag, boost::filesystem::directory_entry&, long, false, false>::derived() const
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long, false, false>::derived() const
Line
Count
Source
622
35.7M
    {
623
35.7M
        return *static_cast< Derived const* >(this);
624
35.7M
    }
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long, false, false>::derived() const
Line
Count
Source
622
807k
    {
623
807k
        return *static_cast< Derived const* >(this);
624
807k
    }
boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long, false, false>::derived() const
Line
Count
Source
622
6.77M
    {
623
6.77M
        return *static_cast< Derived const* >(this);
624
6.77M
    }
boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long, false, false>::derived() const
Line
Count
Source
622
819
    {
623
819
        return *static_cast< Derived const* >(this);
624
819
    }
boost::iterators::detail::iterator_facade_base<boost::program_options::detail::common_config_file_iterator, boost::program_options::basic_option<char> const, boost::iterators::forward_traversal_tag, boost::program_options::basic_option<char> const&, long, false, false>::derived() const
Line
Count
Source
622
1.90M
    {
623
1.90M
        return *static_cast< Derived const* >(this);
624
1.90M
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::environment_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const, boost::iterators::forward_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, long, false, false>::derived() const
boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long, false, false>::derived() const
Line
Count
Source
622
185
    {
623
185
        return *static_cast< Derived const* >(this);
624
185
    }
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::token_iterator<boost::char_separator<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::__wrap_iter<wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > const&, long, false, false>::derived() const
Unexecuted instantiation: boost::iterators::detail::iterator_facade_base<boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long, false, false>::derived() const
625
};
626
627
// Implementation for bidirectional traversal iterators
628
template<
629
    typename Derived,
630
    typename Value,
631
    typename CategoryOrTraversal,
632
    typename Reference,
633
    typename Difference
634
>
635
class iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, false > :
636
    public iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, false, false >
637
{
638
public:
639
    Derived& operator--()
640
0
    {
641
0
        iterator_core_access::decrement(this->derived());
642
0
        return this->derived();
643
0
    }
644
645
    Derived operator--(int)
646
    {
647
        Derived tmp(this->derived());
648
        --*this;
649
        return tmp;
650
    }
651
};
652
653
// Implementation for random access traversal iterators
654
template<
655
    typename Derived,
656
    typename Value,
657
    typename CategoryOrTraversal,
658
    typename Reference,
659
    typename Difference
660
>
661
class iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, true > :
662
    public iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, false >
663
{
664
private:
665
    using base_type = iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, false >;
666
667
public:
668
    using reference = typename base_type::reference;
669
    using difference_type = typename base_type::difference_type;
670
671
public:
672
    operator_brackets_proxy< Derived > operator[](difference_type n) const
673
    {
674
        return operator_brackets_proxy< Derived >(this->derived() + n);
675
    }
676
677
    Derived& operator+=(difference_type n)
678
    {
679
        iterator_core_access::advance(this->derived(), n);
680
        return this->derived();
681
    }
682
683
    Derived& operator-=(difference_type n)
684
    {
685
        iterator_core_access::advance(this->derived(), -n);
686
        return this->derived();
687
    }
688
689
    Derived operator-(difference_type x) const
690
    {
691
        Derived result(this->derived());
692
        return result -= x;
693
    }
694
};
695
696
} // namespace detail
697
698
//
699
// iterator_facade - use as a public base class for defining new
700
// standard-conforming iterators.
701
//
702
template<
703
    typename Derived,             // The derived iterator type being constructed
704
    typename Value,
705
    typename CategoryOrTraversal,
706
    typename Reference,
707
    typename Difference
708
>
709
class iterator_facade :
710
    public detail::iterator_facade_base<
711
        Derived,
712
        Value,
713
        CategoryOrTraversal,
714
        Reference,
715
        Difference,
716
        detail::is_traversal_at_least< CategoryOrTraversal, bidirectional_traversal_tag >::value,
717
        detail::is_traversal_at_least< CategoryOrTraversal, random_access_traversal_tag >::value
718
    >
719
{
720
protected:
721
    // For use by derived classes
722
    using iterator_facade_ = iterator_facade< Derived, Value, CategoryOrTraversal, Reference, Difference >;
723
};
724
725
template< typename I, typename V, typename TC, typename R, typename D >
726
inline typename boost::iterators::detail::postfix_increment_result< I, V, R, TC >::type
727
operator++(iterator_facade< I, V, TC, R, D >& i, int)
728
{
729
    typename boost::iterators::detail::postfix_increment_result< I, V, R, TC >::type
730
        tmp(*static_cast< I* >(&i));
731
732
    ++i;
733
734
    return tmp;
735
}
736
737
738
//
739
// Comparison operator implementation. The library supplied operators
740
// enables the user to provide fully interoperable constant/mutable
741
// iterator types. I.e. the library provides all operators
742
// for all mutable/constant iterator combinations.
743
//
744
// Note though that this kind of interoperability for constant/mutable
745
// iterators is not required by the standard for container iterators.
746
// All the standard asks for is a conversion mutable -> constant.
747
// Most standard library implementations nowadays provide fully interoperable
748
// iterator implementations, but there are still heavily used implementations
749
// that do not provide them. (Actually it's even worse, they do not provide
750
// them for only a few iterators.)
751
//
752
// ?? Maybe a BOOST_ITERATOR_NO_FULL_INTEROPERABILITY macro should
753
//    enable the user to turn off mixed type operators
754
//
755
// The library takes care to provide only the right operator overloads.
756
// I.e.
757
//
758
// bool operator==(Iterator,      Iterator);
759
// bool operator==(ConstIterator, Iterator);
760
// bool operator==(Iterator,      ConstIterator);
761
// bool operator==(ConstIterator, ConstIterator);
762
//
763
//   ...
764
//
765
// In order to do so it uses c++ idioms that are not yet widely supported
766
// by current compiler releases. The library is designed to degrade gracefully
767
// in the face of compiler deficiencies. In general compiler
768
// deficiencies result in less strict error checking and more obscure
769
// error messages, functionality is not affected.
770
//
771
// For full operation compiler support for "Substitution Failure Is Not An Error"
772
// (aka. enable_if) and boost::is_convertible is required.
773
//
774
// The following problems occur if support is lacking.
775
//
776
// Pseudo code
777
//
778
// ---------------
779
// AdaptorA<Iterator1> a1;
780
// AdaptorA<Iterator2> a2;
781
//
782
// // This will result in a no such overload error in full operation
783
// // If enable_if or is_convertible is not supported
784
// // The instantiation will fail with an error hopefully indicating that
785
// // there is no operator== for Iterator1, Iterator2
786
// // The same will happen if no enable_if is used to remove
787
// // false overloads from the templated conversion constructor
788
// // of AdaptorA.
789
//
790
// a1 == a2;
791
// ----------------
792
//
793
// AdaptorA<Iterator> a;
794
// AdaptorB<Iterator> b;
795
//
796
// // This will result in a no such overload error in full operation
797
// // If enable_if is not supported the static assert used
798
// // in the operator implementation will fail.
799
// // This will accidently work if is_convertible is not supported.
800
//
801
// a == b;
802
// ----------------
803
//
804
805
#define BOOST_ITERATOR_FACADE_INTEROP(op, result_type, return_prefix, base_op)                 \
806
    BOOST_ITERATOR_FACADE_INTEROP_HEAD(inline, op, result_type)                                \
807
11.8M
    {                                                                                          \
808
11.8M
        return_prefix iterator_core_access::base_op(                                           \
809
11.8M
            *static_cast< Derived1 const* >(&lhs),                                             \
810
11.8M
            *static_cast< Derived2 const* >(&rhs),                                             \
811
11.8M
            std::integral_constant< bool, std::is_convertible< Derived2, Derived1 >::value >() \
812
11.8M
        );                                                                                     \
813
11.8M
    }
Unexecuted instantiation: boost::iterators::detail::enable_if_interoperable<boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, bool>::type boost::iterators::operator!=<boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long, boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long>(boost::iterators::iterator_facade<boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long> const&, boost::iterators::iterator_facade<boost::iterators::transform_iterator<boost::algorithm::detail::to_upperF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long> const&)
Unexecuted instantiation: boost::iterators::detail::enable_if_interoperable<boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >, boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >, bool>::type boost::iterators::operator!=<boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long, boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long>(boost::iterators::iterator_facade<boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long> const&, boost::iterators::iterator_facade<boost::algorithm::find_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long> const&)
Unexecuted instantiation: boost::iterators::detail::enable_if_interoperable<boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >, boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >, bool>::type boost::iterators::operator!=<boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long, boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long>(boost::iterators::iterator_facade<boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long> const&, boost::iterators::iterator_facade<boost::algorithm::split_iterator<std::__1::__wrap_iter<char*> >, boost::iterator_range<std::__1::__wrap_iter<char*> > const, boost::iterators::forward_traversal_tag, boost::iterator_range<std::__1::__wrap_iter<char*> > const&, long> const&)
Unexecuted instantiation: boost::iterators::detail::enable_if_interoperable<boost::filesystem::path_detail::path_iterator, boost::filesystem::path_detail::path_iterator, bool>::type boost::iterators::operator!=<boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long, boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long>(boost::iterators::iterator_facade<boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long> const&, boost::iterators::iterator_facade<boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long> const&)
Unexecuted instantiation: boost::iterators::detail::enable_if_interoperable<boost::filesystem::path_detail::path_iterator, boost::filesystem::path_detail::path_iterator, bool>::type boost::iterators::operator==<boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long, boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long>(boost::iterators::iterator_facade<boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long> const&, boost::iterators::iterator_facade<boost::filesystem::path_detail::path_iterator, boost::filesystem::path const, boost::iterators::bidirectional_traversal_tag, boost::filesystem::path const&, long> const&)
boost::iterators::detail::enable_if_interoperable<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator, bool>::type boost::iterators::operator==<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long>(boost::iterators::iterator_facade<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long> const&, boost::iterators::iterator_facade<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_assoc_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long> const&)
Line
Count
Source
807
503k
    {                                                                                          \
808
503k
        return_prefix iterator_core_access::base_op(                                           \
809
503k
            *static_cast< Derived1 const* >(&lhs),                                             \
810
503k
            *static_cast< Derived2 const* >(&rhs),                                             \
811
503k
            std::integral_constant< bool, std::is_convertible< Derived2, Derived1 >::value >() \
812
503k
        );                                                                                     \
813
503k
    }
boost::iterators::detail::enable_if_interoperable<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, bool>::type boost::iterators::operator==<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long>(boost::iterators::iterator_facade<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long> const&, boost::iterators::iterator_facade<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long> const&)
Line
Count
Source
807
2.27M
    {                                                                                          \
808
2.27M
        return_prefix iterator_core_access::base_op(                                           \
809
2.27M
            *static_cast< Derived1 const* >(&lhs),                                             \
810
2.27M
            *static_cast< Derived2 const* >(&rhs),                                             \
811
2.27M
            std::integral_constant< bool, std::is_convertible< Derived2, Derived1 >::value >() \
812
2.27M
        );                                                                                     \
813
2.27M
    }
boost::iterators::detail::enable_if_interoperable<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator, bool>::type boost::iterators::operator==<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long>(boost::iterators::iterator_facade<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long> const&, boost::iterators::iterator_facade<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::const_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, long> const&)
Line
Count
Source
807
7.12M
    {                                                                                          \
808
7.12M
        return_prefix iterator_core_access::base_op(                                           \
809
7.12M
            *static_cast< Derived1 const* >(&lhs),                                             \
810
7.12M
            *static_cast< Derived2 const* >(&rhs),                                             \
811
7.12M
            std::integral_constant< bool, std::is_convertible< Derived2, Derived1 >::value >() \
812
7.12M
        );                                                                                     \
813
7.12M
    }
boost::iterators::detail::enable_if_interoperable<boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, bool>::type boost::iterators::operator!=<boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long, boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long>(boost::iterators::iterator_facade<boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long> const&, boost::iterators::iterator_facade<boost::token_iterator<boost::char_separator<char, std::__1::char_traits<char> >, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long> const&)
Line
Count
Source
807
1.18k
    {                                                                                          \
808
1.18k
        return_prefix iterator_core_access::base_op(                                           \
809
1.18k
            *static_cast< Derived1 const* >(&lhs),                                             \
810
1.18k
            *static_cast< Derived2 const* >(&rhs),                                             \
811
1.18k
            std::integral_constant< bool, std::is_convertible< Derived2, Derived1 >::value >() \
812
1.18k
        );                                                                                     \
813
1.18k
    }
boost::iterators::detail::enable_if_interoperable<boost::program_options::detail::common_config_file_iterator, boost::program_options::detail::common_config_file_iterator, bool>::type boost::iterators::operator!=<boost::program_options::detail::common_config_file_iterator, boost::program_options::basic_option<char> const, boost::iterators::forward_traversal_tag, boost::program_options::basic_option<char> const&, long, boost::program_options::detail::common_config_file_iterator, boost::program_options::basic_option<char> const, boost::iterators::forward_traversal_tag, boost::program_options::basic_option<char> const&, long>(boost::iterators::iterator_facade<boost::program_options::detail::common_config_file_iterator, boost::program_options::basic_option<char> const, boost::iterators::forward_traversal_tag, boost::program_options::basic_option<char> const&, long> const&, boost::iterators::iterator_facade<boost::program_options::detail::common_config_file_iterator, boost::program_options::basic_option<char> const, boost::iterators::forward_traversal_tag, boost::program_options::basic_option<char> const&, long> const&)
Line
Count
Source
807
1.90M
    {                                                                                          \
808
1.90M
        return_prefix iterator_core_access::base_op(                                           \
809
1.90M
            *static_cast< Derived1 const* >(&lhs),                                             \
810
1.90M
            *static_cast< Derived2 const* >(&rhs),                                             \
811
1.90M
            std::integral_constant< bool, std::is_convertible< Derived2, Derived1 >::value >() \
812
1.90M
        );                                                                                     \
813
1.90M
    }
Unexecuted instantiation: boost::iterators::detail::enable_if_interoperable<boost::environment_iterator, boost::environment_iterator, bool>::type boost::iterators::operator!=<boost::environment_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const, boost::iterators::forward_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, long, boost::environment_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const, boost::iterators::forward_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, long>(boost::iterators::iterator_facade<boost::environment_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const, boost::iterators::forward_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, long> const&, boost::iterators::iterator_facade<boost::environment_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const, boost::iterators::forward_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, long> const&)
boost::iterators::detail::enable_if_interoperable<boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, bool>::type boost::iterators::operator!=<boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long, boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long>(boost::iterators::iterator_facade<boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long> const&, boost::iterators::iterator_facade<boost::token_iterator<boost::offset_separator, std::__1::__wrap_iter<char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::iterators::forward_traversal_tag, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, long> const&)
Line
Count
Source
807
227
    {                                                                                          \
808
227
        return_prefix iterator_core_access::base_op(                                           \
809
227
            *static_cast< Derived1 const* >(&lhs),                                             \
810
227
            *static_cast< Derived2 const* >(&rhs),                                             \
811
227
            std::integral_constant< bool, std::is_convertible< Derived2, Derived1 >::value >() \
812
227
        );                                                                                     \
813
227
    }
Unexecuted instantiation: boost::iterators::detail::enable_if_interoperable<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assoc_iterator, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assoc_iterator, bool>::type boost::iterators::operator!=<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assoc_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assoc_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long>(boost::iterators::iterator_facade<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assoc_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long> const&, boost::iterators::iterator_facade<boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assoc_iterator, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, boost::iterators::bidirectional_traversal_tag, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::property_tree::basic_ptree<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, long> const&)
Unexecuted instantiation: boost::iterators::detail::enable_if_interoperable<boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, bool>::type boost::iterators::operator!=<boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long, boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long>(boost::iterators::iterator_facade<boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long> const&, boost::iterators::iterator_facade<boost::iterators::transform_iterator<boost::algorithm::detail::to_lowerF<char>, std::__1::__wrap_iter<char const*>, boost::use_default, boost::use_default>, char, boost::iterators::random_access_traversal_tag, char, long> const&)
814
815
#define BOOST_ITERATOR_FACADE_RELATION(op, return_prefix, base_op) \
816
    BOOST_ITERATOR_FACADE_INTEROP(                                 \
817
        op,                                                        \
818
        boost::iterators::detail::always_bool_t,                   \
819
        return_prefix,                                             \
820
        base_op                                                    \
821
    )
822
823
BOOST_ITERATOR_FACADE_RELATION(==, return, equal)
824
BOOST_ITERATOR_FACADE_RELATION(!=, return !, equal)
825
826
#undef BOOST_ITERATOR_FACADE_RELATION
827
828
829
#define BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS(op, result_type, return_prefix, base_op)   \
830
    BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS_HEAD(inline, op, result_type)                  \
831
49.9k
    {                                                                                          \
832
49.9k
        return_prefix iterator_core_access::base_op(                                           \
833
49.9k
            *static_cast< Derived1 const* >(&lhs),                                             \
834
49.9k
            *static_cast< Derived2 const* >(&rhs),                                             \
835
49.9k
            std::integral_constant< bool, std::is_convertible< Derived2, Derived1 >::value >() \
836
49.9k
        );                                                                                     \
837
49.9k
    }
838
839
#define BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(op, return_prefix, base_op) \
840
    BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS(                                 \
841
        op,                                                                      \
842
        boost::iterators::detail::always_bool_t,                                 \
843
        return_prefix,                                                           \
844
        base_op                                                                  \
845
    )
846
847
BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(<, return 0 >, distance_from)
848
BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(>, return 0 <, distance_from)
849
BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(<=, return 0 >=, distance_from)
850
BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(>=, return 0 <=, distance_from)
851
852
#undef BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION
853
854
// operator- requires an additional part in the static assertion
855
BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS(
856
    -,
857
    boost::iterators::detail::choose_difference_type_t,
858
    return,
859
    distance_from
860
)
861
862
#undef BOOST_ITERATOR_FACADE_INTEROP
863
#undef BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS
864
865
#define BOOST_ITERATOR_FACADE_PLUS(args)               \
866
    BOOST_ITERATOR_FACADE_PLUS_HEAD(inline, args)      \
867
    {                                                  \
868
        Derived tmp(static_cast< Derived const& >(i)); \
869
        return tmp += n;                               \
870
    }
871
872
BOOST_ITERATOR_FACADE_PLUS((iterator_facade< Derived, V, TC, R, D > const& i, typename Derived::difference_type n))
873
BOOST_ITERATOR_FACADE_PLUS((typename Derived::difference_type n, iterator_facade< Derived, V, TC, R, D > const& i))
874
875
#undef BOOST_ITERATOR_FACADE_PLUS
876
#undef BOOST_ITERATOR_FACADE_PLUS_HEAD
877
878
#undef BOOST_ITERATOR_FACADE_INTEROP_HEAD
879
#undef BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS_HEAD
880
#undef BOOST_ITERATOR_FACADE_INTEROP_HEAD_IMPL
881
882
} // namespace iterators
883
884
using iterators::iterator_core_access;
885
using iterators::iterator_facade;
886
887
} // namespace boost
888
889
#endif // BOOST_ITERATOR_FACADE_23022003THW_HPP