New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
concept.hpp in vendors/XIOS/current/extern/boost/include/boost/algorithm/string – NEMO

source: vendors/XIOS/current/extern/boost/include/boost/algorithm/string/concept.hpp @ 3428

Last change on this file since 3428 was 3428, checked in by rblod, 12 years ago

importing initial XIOS vendor drop

File size: 2.3 KB
Line 
1//  Boost string_algo library concept.hpp header file  ---------------------------//
2
3//  Copyright Pavol Droba 2002-2003.
4//
5// Distributed under the Boost Software License, Version 1.0.
6//    (See accompanying file LICENSE_1_0.txt or copy at
7//          http://www.boost.org/LICENSE_1_0.txt)
8
9//  See http://www.boost.org/ for updates, documentation, and revision history.
10
11#ifndef BOOST_STRING_CONCEPT_HPP
12#define BOOST_STRING_CONCEPT_HPP
13
14#include <boost/concept_check.hpp>
15#include <boost/range/iterator_range.hpp>
16#include <boost/range/begin.hpp>
17#include <boost/range/end.hpp>
18
19/*! \file
20    Defines concepts used in string_algo library
21*/
22
23namespace boost {
24    namespace algorithm {
25
26        //! Finder concept
27        /*!
28            Defines the Finder concept. Finder is a functor which selects
29            an arbitrary part of a string. Search is performed on
30            the range specified by starting and ending iterators.
31
32            Result of the find operation must be convertible to iterator_range.
33        */
34        template<typename FinderT, typename IteratorT>
35        struct FinderConcept
36        {
37        private:
38            typedef iterator_range<IteratorT> range;
39        public:
40            void constraints()
41            {
42                // Operation
43                r=(*pF)(i,i);
44            }
45        private:
46            range r;
47            IteratorT i;
48            FinderT* pF;   
49        }; // Finder_concept
50
51       
52        //! Formatter concept
53        /*!
54            Defines the Formatter concept. Formatter is a functor, which
55            takes a result from a finder operation and transforms it
56            in a specific way.
57
58            Result must be a container supported by container_traits,
59            or a reference to it.
60        */
61        template<typename FormatterT, typename FinderT, typename IteratorT>
62        struct FormatterConcept
63        {
64        public:
65            void constraints()
66            {
67                // Operation
68                ::boost::begin((*pFo)( (*pF)(i,i) ));
69                ::boost::end((*pFo)( (*pF)(i,i) ));
70            }
71        private:
72            IteratorT i;
73            FinderT* pF;
74            FormatterT *pFo;
75        }; // FormatterConcept;
76
77    } // namespace algorithm
78} // namespace boost
79
80
81
82
83#endif  // BOOST_STRING_CONCEPT_HPP
Note: See TracBrowser for help on using the repository browser.