NEST  2.6.0,not_revisioned_source_dir@0
arraydatum.h
Go to the documentation of this file.
1 /*
2  * arraydatum.h
3  *
4  * This file is part of NEST.
5  *
6  * Copyright (C) 2004 The NEST Initiative
7  *
8  * NEST is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * NEST is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with NEST. If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 #ifndef ARRAYDATUM_H
24 #define ARRAYDATUM_H
25 
26 #include "interpret.h"
27 #include "tokenarray.h"
28 #include "aggregatedatum.h"
29 #include "lockptrdatum.h"
30 #include <vector>
31 
32 /* These are declarations to specialize the static memory pool BEFORE
33  we instantiate the AggregateDatum. Note, that this is only a declaration,
34  because we do not provide an initializer (see ISO14882 Sec. 14.7.3.15.)
35  The definition is given in the *.CC file with the appropriate
36  initializer.
37 
38  Note that SUN's Forte 6.2 does not handle this correctly, so we have
39  to use a compiler-switch.
40 */
41 
42 
43 #ifndef HAVE_STATIC_TEMPLATE_DECLARATION_FAILS
44 template<>
46 template<>
48 template<>
50 #endif
51 
52 template<>
54 template<>
56 template<>
58 template<>
59 void AggregateDatum<TokenArray,&SLIInterpreter::Proceduretype>::list(std::ostream &,std::string, int) const;
60 template<>
62 template<>
64 template<>
66 template<>
67 void AggregateDatum<TokenArray,&SLIInterpreter::Litproceduretype>::list(std::ostream &,std::string, int) const;
68 template<>
69 void lockPTRDatum<std::vector<long> ,&SLIInterpreter::IntVectortype>::pprint(std::ostream &out) const;
70 template<>
71 void lockPTRDatum<std::vector<double> ,&SLIInterpreter::DoubleVectortype>::pprint(std::ostream &out) const;
72 
83 
94 
98 
99 
100 #endif
virtual void print(std::ostream &out) const
Definition: nest_datums.cpp:34
Definition: lockptrdatum.h:40
virtual void list(std::ostream &out, std::string prefix, int l) const
Definition: aggregatedatum.h:134
AggregateDatum< TokenArray,&SLIInterpreter::Proceduretype > ProcedureDatum
Definition: arraydatum.h:96
static SLIType DoubleVectortype
Definition: interpret.h:218
Definition: aggregatedatum.h:53
AggregateDatum< TokenArray,&SLIInterpreter::Arraytype > ArrayDatum
Definition: arraydatum.h:95
lockPTRDatum< std::vector< double >,&SLIInterpreter::DoubleVectortype > DoubleVectorDatum
Definition: arraydatum.h:93
AggregateDatum< TokenArray,&SLIInterpreter::Litproceduretype > LitprocedureDatum
Definition: arraydatum.h:97
virtual void pprint(std::ostream &out) const
Definition: nest_datums.cpp:38
static SLIType IntVectortype
Definition: interpret.h:217
pool is a specialized allocator class for many identical small objects.
Definition: allocator.h:50
lockPTRDatum< std::vector< long >,&SLIInterpreter::IntVectortype > IntVectorDatum
Definition: arraydatum.h:82