On Sun, Aug 28, 2005 at 10:39:25AM +0200, Petter Reinholdtsen wrote: > [Kurt Roeckx] > > > It's trying to print the address. In C, with printf, you'd use a %p > > for it. I have no idea if std::cout has something simular. > > Is this the only place this is happening? Did it compile when this > line is fixed? Is this the only 64-bit problem in this code?
It compiled after that line was fixed, I did not try to run it. It seems to be working. > > I think the easiest way to fix it would be cast it to an intptr_t. > > The code in question is debug output. I guess it is trying to print > out a pointer, yes. Why not just drop the cast completely? > > FaceAttr* faceattr = new FaceAttr(vertex_num, vertexlist_wc, > 0 /*normal_num*/, normallist_wc); > [...] > std::cout << "addr of light_: " << faceattr->light() << std::endl; > * std::cout << int (*(faceattr->light())) << std::endl; > faceattr->print(); > > faceattr->light() returns 'AnyLight**', and thus this line try to > print 'AnyLight*'. If it can porint 'AnyLight**', it should be > capable of printing 'AnyLight*' too. You're right, just dropping the cast makes it build too. Kurt -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]