casacore
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
casa
Utilities
DefaultValue.h
Go to the documentation of this file.
1
//# DefaultValue.h: fill a variable with its default value.
2
//# Copyright (C) 1995,1996,2000
3
//# Associated Universities, Inc. Washington DC, USA.
4
//#
5
//# This library is free software; you can redistribute it and/or modify it
6
//# under the terms of the GNU Library General Public License as published by
7
//# the Free Software Foundation; either version 2 of the License, or (at your
8
//# option) any later version.
9
//#
10
//# This library is distributed in the hope that it will be useful, but WITHOUT
11
//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13
//# License for more details.
14
//#
15
//# You should have received a copy of the GNU Library General Public License
16
//# along with this library; if not, write to the Free Software Foundation,
17
//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18
//#
19
//# Correspondence concerning AIPS++ should be addressed as follows:
20
//# Internet email: aips2-request@nrao.edu.
21
//# Postal address: AIPS++ Project Office
22
//# National Radio Astronomy Observatory
23
//# 520 Edgemont Road
24
//# Charlottesville, VA 22903-2475 USA
25
//#
26
//#
27
//# $Id$
28
29
#ifndef CASA_DEFAULTVALUE_H
30
#define CASA_DEFAULTVALUE_H
31
32
#include <
casacore/casa/aips.h
>
33
34
namespace
casacore {
//# NAMESPACE CASACORE - BEGIN
35
36
// <summary>
37
// A templated function which sets a variable to a default value.
38
// </summary>
39
40
// <use visibility=export>
41
42
// <reviewed reviewer="syang" date="1996/03/14" tests="tDefaultValue.cc" demos="">
43
// </reviewed>
44
45
// <prerequisite>
46
// </prerequisite>
47
//
48
// <etymology>
49
// The DefaultValue function name is derived from its use to fill a data type
50
// with a default value, usually zero.
51
// </etymology>
52
//
53
// <synopsis>
54
// The DefaultValue function is passed an instance of a data type and the
55
// variable is filled with a default value. The majority of classes may
56
// use the templated version here. Special classes may use their own
57
// non-templated specializations as demonstrated in
58
// ../Utilities/test/tDefaultValue.cc.
59
// </synopsis>
60
//
61
// <example>
62
// <srcblock>
63
// Int foo = 35;
64
// defaultValue(foo);
65
// AlwaysAssert(foo == 0, AipsError);
66
// Array<Float> bar;
67
// defaultValue(bar);
68
// AlwaysAssert(allEQ(bar, 0.0f), AipsError);
69
// </srcblock>
70
// A special class may need its own implementation:
71
// <srcblock>
72
// void defaultValue(MySpecialClass &val){
73
// // make a default value be all zeros
74
// val.operator()(IPosition(2,3,4)) = Table.keywords().defaultval();
75
// };
76
// </srcblock>
77
// </example>
78
//
79
// <motivation>
80
// We needed a common way of setting all objects to zero or some
81
// null/default value. Specializing a templated function seemed the only way
82
// to reach everyone.
83
// </motivation>
84
//
85
// <templating arg=T>
86
// <li> constructor T(Int)
87
// <li> assignment operator (copy semantics)
88
// </templating>
89
//
90
// <thrown>
91
// <li> none
92
// </thrown>
93
//
94
// <todo asof="1996/02/22">
95
// <li> none
96
// </todo>
97
98
// <group name=defval>
99
100
template
<
class
T>
inline
void
defaultValue
(T &theValue)
101
{
102
theValue = T(0);
103
}
104
105
// </group>
106
107
108
}
//# NAMESPACE CASACORE - END
109
110
#endif
aips.h
casacore::DefaultValue_global_functions_defval::defaultValue
void defaultValue(T &theValue)
Definition:
DefaultValue.h:100
Generated by
1.8.5