From: Patrik J. <pa...@uc...> - 2006-12-20 19:21:31
|
Neal Becker wrote: > Newbie here. This must be a common issue. >=20 > This code: >=20 > int main() { > blitz::Array<double,1> x (10); >=20 > for (int i =3D 0; i < 10; ++i) > x[i] =3D i; >=20 > for (int i =3D 0; i < 10; ++i) > std::cout << x[i] << '\n'; >=20 > std::cout << x << '\n'; > } >=20 > compiles fine, but produces wrong results. >=20 > Problem is, I needed to use operator() for index, not operator[]. >=20 > Problem is, it compiles and runs without complaint. Why is that? Isn'= t x[1]=20 > invalid? No, it means something different. Look under "multi-component arrays". (Essentially, x[1] would pick out the "y-component" of an array of 3-vectors.) Doesn't turning on BZ_DEBUG give you some kind of error when this happens= ? cheers, /Patrik |