PISM, A Parallel Ice Sheet Model
stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
src
util
options.hh
Go to the documentation of this file.
1
/* Copyright (C) 2014, 2015 PISM Authors
2
*
3
* This file is part of PISM.
4
*
5
* PISM is free software; you can redistribute it and/or modify it under the
6
* terms of the GNU General Public License as published by the Free Software
7
* Foundation; either version 3 of the License, or (at your option) any later
8
* version.
9
*
10
* PISM is distributed in the hope that it will be useful, but WITHOUT ANY
11
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13
* details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with PISM; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
*/
19
20
#ifndef _OPTIONS_H_
21
#define _OPTIONS_H_
22
23
namespace
pism
{
24
namespace
options {
25
26
//! Template base class used by PISM's option-processing classes.
27
/*! (Ensures API consistency and helps code reuse.)
28
*/
29
template
<
typename
T>
30
class
Option
{
31
public
:
32
Option
() {
33
m_is_set
=
false
;
34
}
35
bool
is_set
()
const
{
36
return
m_is_set
;
37
}
38
T
value
()
const
{
39
return
m_value
;
40
}
41
operator
T()
const
{
42
return
m_value
;
43
}
44
const
T*
operator->
()
const
{
45
return
&
m_value
;
46
}
47
T*
operator->
() {
48
return
&
m_value
;
49
}
50
bool
operator==
(
const
T& other)
const
{
51
return
m_value
== other;
52
}
53
protected
:
54
T
m_value
;
55
bool
m_is_set
;
56
void
set
(T new_value,
bool
new_flag) {
57
m_value
= new_value;
58
m_is_set
= new_flag;
59
}
60
};
61
62
}
// end of namespace options
63
}
// end of namespace pism
64
65
66
#endif
/* _OPTIONS_H_ */
pism::options::Option::m_value
T m_value
Definition:
options.hh:54
pism::options::Option::is_set
bool is_set() const
Definition:
options.hh:35
pism::options::Option::set
void set(T new_value, bool new_flag)
Definition:
options.hh:56
pism::options::Option::operator==
bool operator==(const T &other) const
Definition:
options.hh:50
pism::options::Option::Option
Option()
Definition:
options.hh:32
pism::options::Option::value
T value() const
Definition:
options.hh:38
pism::options::Option::operator->
const T * operator->() const
Definition:
options.hh:44
pism::options::Option::m_is_set
bool m_is_set
Definition:
options.hh:55
pism::options::Option::operator->
T * operator->()
Definition:
options.hh:47
pism::options::Option
Template base class used by PISM's option-processing classes.
Definition:
options.hh:30
pism
Definition:
AgeColumnSystem.cc:23
Generated by
1.9.1