Grazie Migliorabile!
ho sistemato il typedef della funzione come mi avevi indicato e tutto ha funzionato.
Ero arrivato al 60% della compilazione ma mi ha dato questo errore:
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.7/README.Bugs> for instructions.
make: *** [obj/alert.o] Error 4
Ho letto che trattasi di esaurimento memoria, ho esteso la swap e le cose sono andate.
Fino al 70% con nuovo errore, e questa la vedo veramente tosta per me,provo a vedere se riesci a darmi n indicazione, se si, te ne sarei grato:
exception specifier?
Grazie mille in ogni caso e buona serata.
ERRORE:
Building CXX object scimath/CMakeFiles/casa_scimath.dir/Mathematics/VectorKernel.cc.o
/home/ubuntu/CASA/work2/stable-2013-10/casacore/scimath/Functionals/SerialHelper.cc:69:52: error: declaration of ‘void casa::getArrayVal(V&, int, const casa::Record&, const casa::String&, casa::uInt) [with V = bool; casa::uInt = unsigned int]’ has a different exception specifier
const String& name, uInt index)WHATEVER_SUN_EXCEPTSPEC(InvalidSerializationError)
^
In file included from /home/ubuntu/CASA/work2/stable-2013-10/casacore/scimath/Functionals/SerialHelper.cc:28:0:
/home/ubuntu/CASA/work2/stable-2013-10/casacore/scimath/Functionals/SerialHelper.h:39:6: error: from previous declaration ‘void casa::getArrayVal(V&, int, const casa::Record&, const casa::String&, casa::uInt) throw (casa::InvalidSerializationError) [with V = bool; casa::uInt = unsigned int]’
void getArrayVal(V &val, int type, const Record& gr,
^
/home/ubuntu/CASA/work2/stable-2013-10/casacore/scimath/Functionals/SerialHelper.cc:91:52: error: declaration of ‘void casa::getArrayVal(V&, int, const casa::Record&, const casa::String&, casa::uInt) [with V = short int; casa::uInt = unsigned int]’ has a different exception specifier
const String& name, uInt index)WHATEVER_SUN_EXCEPTSPEC(InvalidSerializationError)
1G ^
SerialHelper.h
29 #ifndef SCIMATH_SERIALHELPER_H
30 #define SCIMATH_SERIALHELPER_H
31
32 #include <scimath/Functionals/FunctionFactoryErrors.h>
33 #include <casa/Containers/Record.h>
34 namespace casa { //# NAMESPACE CASA - BEGIN
35
36 template<class T> class Array;
37
38 template <class V>
39 void getArrayVal(V &val, int type, const Record& gr,
40 const String& name, uInt index=0)
41 throw (InvalidSerializationError);
42
43 template <class V>
44 void getArray(Array<V> &val, int type, const Record& gr,
45 const String& name)
46 throw (InvalidSerializationError);
47
48 // <summary>
49 //
50 //
51 //
52 //
53 //
54 // </summary>
55
56 // <use visibility=export>
57
58 // <reviewed reviewer="" date="yyyy/mm/dd" tests="" demos="">
59 // </reviewed>
60
61 // <prerequisite>
62 // <li> FunctionFactory
63 // </prerequisite>
64 //
65 // <etymology>
66 //
67 //
68 // </etymology>
69 //
70 // <synopsis>
71 //
72 //
73 //
74 //
75 // </synopsis>
76 //
77 // <example>
78 //
79 //
80 //
81 // </example>
82 //
83 // <motivation>
84 //
85 //
86 //
87 // </motivation>
88 //
89 // <thrown>
90 // <li> InvalidSerializationError by getFuncType() if Record
91 // does not contain a "functype" field containing a string.
92 // <li> InvalidSerializationError
93 // </thrown>
94 //
95 // <todo asof="yyyy/mm/dd">
96 // <li>
97 // <li>
98 // <li>
99 // </todo>
100
101 class SerialHelper {
102 public:
103 static const String FUNCTYPE;
104 static const String gtype[];
105 enum shType { shtBOOL=0, shtBYTE, shtSHORT, shtINT, shtFLOAT,
106 shtDOUBLE, shtCOMPLEX, shtDCOMPLEX, shtSTRING};
107
108 SerialHelper(const Record& record) : gr(record) { }
109 SerialHelper(const SerialHelper& other) { gr = other.gr; }
110 virtual ~SerialHelper() { }
111
112 // load the function type name as given in the record's "functype"
113 // field into the given String <em>ftype</em>. <em>gr</em> is the
114 // record to extract from. False is returned if the record
115 // does not contain this field.
116 // <thrown>
117 // <li> InvalidSerializationError if "functype" exists but is
118 // empty or the incorrect type
119 // </thrown>
120 Bool getFuncType(String& ftype) const
121 throw (InvalidSerializationError);
122
123 // ensure that the Function type stored in the given record, <em>gr</em>,
124 // matches <em>ftype</em>. If it does not, an
125 // InvalidSerializationError is thrown.
126 void checkFuncType(const String& ftype) const
127 throw (InvalidSerializationError);
128
129 // return True if a field with the given <em>name</em> exists
130 Bool exists(const String &name) const { return gr.isDefined(name); }
131
132 // Get the <em>index</em>th element of the <em>name</em> field
133 // This should be
134 // particularly useful for Array objects with only one element,
135 // i.e. a <em>scalar</em>.
136 // Note that unlike the native classes, indexing is zero-relative.
137 //
138 // InvalidSerializationError is thrown if:
139 // <ul>
140 // <li> if the given record does not contain a field called <em>name</em>
141 // <li> if the field is not a vector of the correct type.
142 // <li> if the index is out of range.
143 // </ul>
144 // <group>
145 void get(Bool &val, const String& name, uInt index = 0) const
146 throw (InvalidSerializationError);
147 // void get(uChar &val, const String& name, uInt index = 0) const
148 // throw (InvalidSerializationError);
149 void get(Short &val, const String& name, uInt index = 0) const
150 throw (InvalidSerializationError);
151 void get(Int &val, const String& name, uInt index = 0) const
152 throw (InvalidSerializationError);
153 void get(Float &val, const String& name, uInt index = 0) const
154 throw (InvalidSerializationError);
155 void get(Double &val, const String& name, uInt index = 0) const
156 throw (InvalidSerializationError);
157 void get(Complex &val, const String& name, uInt index = 0) const
158 throw (InvalidSerializationError);
159 void get(DComplex &val, const String& name, uInt index = 0) const
160 throw (InvalidSerializationError);
161 void get(String &val, const String& name, uInt index = 0) const
162 throw (InvalidSerializationError);
163 void get(Record &val, const String& name) const
164 throw (InvalidSerializationError);
165 // </group>
166
167 // Get the <em>index</em>th element of the <em>name</em> field
168 // This should be
169 // particularly useful for Array objects with only one element,
170 // i.e. a <em>scalar</em>.
171 // Note that unlike the native classes, indexing is zero-relative.
172 //
173 // InvalidSerializationError is thrown if:
174 // <ul>
175 // <li> if the given record does not contain a field called <em>name</em>
176 // <li> if the field is not a vector of the correct type.
177 // <li> if the index is out of range.
178 // </ul>
179 // <group>
180 void get(Array<Bool> &val, const String& name) const
181 throw (InvalidSerializationError);
182 // void get(Array<uChar &val, const String& name) const
183 // throw (InvalidSerializationError);
184 void get(Array<Short> &val, const String& name) const
185 throw (InvalidSerializationError);
186 void get(Array<Int> &val, const String& name) const
187 throw (InvalidSerializationError);
188 void get(Array<Float> &val, const String& name) const
189 throw (InvalidSerializationError);
190 void get(Array<Double> &val, const String& name) const
191 throw (InvalidSerializationError);
192 void get(Array<Complex> &val, const String& name) const
193 throw (InvalidSerializationError);
194 void get(Array<DComplex> &val, const String& name) const
195 throw (InvalidSerializationError);
196 void get(Array<String> &val, const String& name) const
197 throw (InvalidSerializationError);
198 // </group>
199
200 SerialHelper& operator=(const SerialHelper& other) {
201 gr = other.gr;
202 return *this;
203 }
204
205 protected:
206 SerialHelper() { }
207
208 private:
209
210 Record gr;
211 };
212
213
214 } //# NAMESPACE CASA - END
215
216 #endif