From: Volker B. <vb...@ph...> - 2008-01-05 15:39:19
|
There are only two operator= for blitz::Array, which a) Copy Array of the same type, or b) assign the result of an expression. So you can use b) via blitz::Array< float, 2 > x; blitz::Array< int, 2 > y; x = y(blitz::tensor::i, blitz::tensor::j); or blitz::Array< float, 2 > x; blitz::Array< int, 2 > y; blitz::firstIndex i; blitz::secondIndex j; x = y(i,j); Arguably the type conversion operator= is missing. On the other hand, making the type conversion more explicit might save you from accidentally losing precision. Volker On Fri, 2008-01-04 at 18:41 +0100, Johannes Ballé wrote: > Dear Blitz++ gurus, > > I've been getting strange compilation errors involving implicit type casts > with Blitz++ 0.9. It boils down to the following problem: > > #include <blitz/array.h> > > int main( int argc, char *argv[] ) { > blitz::Array< float, 2 > x; > blitz::Array< int, 2 > y; > x = y; > return 0; > } > > This code doesn't compile with g++, although I think it should be able to cast > each int element to a float element ... > > Maybe some compiler issue? Or am I just blind? ;) |