Trying to compile octcdf-1.1.1 with octave 3.2.4 on Fedora 14, I get:
mkoctfile -DHAVE_OCTAVE_ -v -c ov-netcdf.cc -DH5_USE_16_API -I/usr/include
-DHAVE_OCTAVE_INT
g++ -c -DH5_USE_16_API -fPIC -I/usr/include/octave-3.2.4
-I/usr/include/octave-3.2.4/octave -mieee-fp -I/usr/include/freetype2 -O2 -g
-pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom
-fasynchronous-unwind-tables -I/usr/include -DHAVE_OCTAVE_ -DH5_USE_16_API
-DHAVE_OCTAVE_INT ov-netcdf.cc -o ov-netcdf.o
ov-netcdf.cc: In function ‘octave_value ov_nc_get_att(int, int, std::string)’:
ov-netcdf.cc:623:424: error: call of overloaded ‘octave_value(Array<double>&)’
is ambiguous
/usr/include/octave-3.2.4/octave/ov.h:263:3: note: candidates are:
octave_value::octave_value(const ArrayN<octave_int<long long unsigned int> >&)
/usr/include/octave-3.2.4/octave/ov.h:261:3: note:
octave_value::octave_value(const ArrayN<octave_int<unsigned int> >&)
/usr/include/octave-3.2.4/octave/ov.h:259:3: note:
octave_value::octave_value(const ArrayN<octave_int<short unsigned int> >&)
/usr/include/octave-3.2.4/octave/ov.h:257:3: note:
octave_value::octave_value(const ArrayN<octave_int<unsigned char> >&)
/usr/include/octave-3.2.4/octave/ov.h:255:3: note:
octave_value::octave_value(const ArrayN<octave_int<long long int> >&)
/usr/include/octave-3.2.4/octave/ov.h:253:3: note:
octave_value::octave_value(const ArrayN<octave_int<int> >&)
/usr/include/octave-3.2.4/octave/ov.h:251:3: note:
octave_value::octave_value(const ArrayN<octave_int<short int> >&)
/usr/include/octave-3.2.4/octave/ov.h:249:3: note:
octave_value::octave_value(const ArrayN<octave_int<signed char> >&)
/usr/include/octave-3.2.4/octave/ov.h:247:3: note:
octave_value::octave_value(const octave_uint64&)
/usr/include/octave-3.2.4/octave/ov.h:246:3: note:
octave_value::octave_value(const octave_uint32&)
/usr/include/octave-3.2.4/octave/ov.h:245:3: note:
octave_value::octave_value(const octave_uint16&)
/usr/include/octave-3.2.4/octave/ov.h:244:3: note:
octave_value::octave_value(const octave_uint8&)
/usr/include/octave-3.2.4/octave/ov.h:243:3: note:
octave_value::octave_value(const octave_int64&)
/usr/include/octave-3.2.4/octave/ov.h:242:3: note:
octave_value::octave_value(const octave_int32&)
/usr/include/octave-3.2.4/octave/ov.h:241:3: note:
octave_value::octave_value(const octave_int16&)
/usr/include/octave-3.2.4/octave/ov.h:240:3: note:
octave_value::octave_value(const octave_int8&)
/usr/include/octave-3.2.4/octave/ov.h:233:3: note:
octave_value::octave_value(const Sparse<double>&, const MatrixType&)
/usr/include/octave-3.2.4/octave/ov.h:230:3: note:
octave_value::octave_value(const ArrayN<char>&, bool, char)
/usr/include/octave-3.2.4/octave/ov.h:221:3: note:
octave_value::octave_value(const ArrayN<bool>&)
/usr/include/octave-3.2.4/octave/ov.h:210:3: note:
octave_value::octave_value(const ArrayN<std::complex<float> >&)
/usr/include/octave-3.2.4/octave/ov.h:209:3: note:
octave_value::octave_value(const ArrayN<std::complex<double> >&)
/usr/include/octave-3.2.4/octave/ov.h:196:3: note:
octave_value::octave_value(const ArrayN<float>&)
/usr/include/octave-3.2.4/octave/ov.h:195:3: note:
octave_value::octave_value(const ArrayN<double>&)
/usr/include/octave-3.2.4/octave/ov.h:189:3: note:
octave_value::octave_value(const ArrayN<octave_value>&, bool)
... and repeats at lines 624-627.
Seeing that a similar error was reported against image-1.0.11 and fixed in
1.0.12, I came up with the attached patch. Now, I really have no idea what
I'm doing here, I just changed Array to ArrayN as I saw done in image-1.0.12,
I have no idea if this is the correct fix, just that it compiles.
--
Orion Poplawski
Technical Manager 303-415-9701 x222
NWRA/CoRA Division FAX: 303-415-9702
3380 Mitchell Lane or...@cora.nwra.com
Boulder, CO 80301 http://www.cora.nwra.com
diff -up octcdf/src/ov-netcdf.cc.arrayN octcdf/src/ov-netcdf.cc
--- octcdf/src/ov-netcdf.cc.arrayN 2010-04-27 07:19:51.000000000 -0600
+++ octcdf/src/ov-netcdf.cc 2010-12-10 16:09:20.766181622 -0700
@@ -609,7 +609,7 @@ octave_value ov_nc_get_att(int ncid, int
if (lenp == 1) { \
retval = octave_value(*var); \
} else { \
- Array<double> arr = Array<double>(dim_vector(1,lenp)); \
+ ArrayN<double> arr = ArrayN<double>(dim_vector(1,lenp)); \
for (unsigned int i=0; i<lenp; i++) { \
arr.xelem(i) = (double)var[i]; \
} \
------------------------------------------------------------------------------
Oracle to DB2 Conversion Guide: Learn learn about native support for PL/SQL,
new data types, scalar functions, improved concurrency, built-in packages,
OCI, SQL*Plus, data movement tools, best practices and more.
http://p.sf.net/sfu/oracle-sfdev2dev
_______________________________________________
Octave-dev mailing list
Octave-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/octave-dev