libMesh
Loading...
Searching...
No Matches
simple_range.h
Go to the documentation of this file.
1// The libMesh Finite Element Library.
2// Copyright (C) 2002-2026 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3
4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public
6// License as published by the Free Software Foundation; either
7// version 2.1 of the License, or (at your option) any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// Lesser General Public License for more details.
13
14// You should have received a copy of the GNU Lesser General Public
15// License along with this library; if not, write to the Free Software
16// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
18
19
20#ifndef LIBMESH_SIMPLERANGE_H
21#define LIBMESH_SIMPLERANGE_H
22
23#include <utility>
24
25namespace libMesh
26{
27
35template <typename IndexType>
37{
38public:
39 SimpleRange(IndexType begin, IndexType end) : _begin(begin), _end(end) {}
40
41 IndexType begin() const { return _begin; }
42
43 IndexType end () const { return _end; }
44
45private:
46 IndexType _begin, _end;
47};
48
49
50
56template<typename IndexType>
57SimpleRange<IndexType> as_range(const std::pair<IndexType, IndexType> & p)
58{
59 return {p.first, p.second};
60}
61
62
63
68template<typename IndexType>
69SimpleRange<IndexType> as_range(const IndexType & first,
70 const IndexType & second)
71{
72 return {first, second};
73}
74
75} // namespace libMesh
76
77#endif // LIBMESH_SIMPLERANGE_H
The SimpleRange templated class is intended to make it easy to construct ranges from pairs of iterato...
IndexType end() const
SimpleRange(IndexType begin, IndexType end)
IndexType begin() const
The libMesh namespace provides an interface to certain functionality in the library.
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
Helper function that allows us to treat a homogenous pair as a range.