------- Additional Comments From bangerth at dealii dot org 2004-10-18 20:32 ------- Actually, the typedef has nothing to do with it. Here's a modified FEMmain.cc file: ------------------------- #include <iostream> #include "Elements.h" int main() { Container2D<R> Vec(6,6,1.0); FiniteElement<Simplex, _2D, P2> SP2(&Vec); Mesh mesh; AssemblyTerm<0, Simplex, _2D, P2> u(mesh, &Vec); AssemblyTerm<0, Simplex, _2D, P2> v(mesh, &Vec); // Give Vec its final values for (size_t i = 0; i < 6; i++) for (unsigned int j=0; j<6; ++j) Vec[j][i] += j; R x = 1.0; R y = 0.0; R z = 2.0; AssemblyTerm<1, Simplex, _2D, P2> vdx(mesh, &Vec); std::cout << "Before: " << vdx(0,x,y,z) << "\n"; std::cout << "After: " << vdx(0,x,y,z) << "\n"; } -------------------------- The typedef is gone, and I output only the first element. What I get is this: g/x> /home/bangerth/bin/gcc-3.4.3-pre/bin/c++ *.cc -o x ; ./x Before: 3 After: -0.994019 In other words, the output changes if I call the same function vdx(0,x,y,z) twice. I will have to see what's going on in the function. W.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18049