From: Benjamin K. <ben...@na...> - 2008-02-19 20:57:34
|
Well, it finally happened... My sloppy #define error() ... caught up with me. SunStudio uses error as a member variable, and has the string error(good) in a constructor initialization list. Of course, that is a perfectly sensible thing for them to do. ;-) I've replaced all those #define's in libmesh_common.h with inline functions, but that does introduce its own complications. For example, the following will no longer work: Real error = 0; if (condition) error(); Which we have (not surprisingly) in a number of places. Obviously, the variable error hides the function error(); so we can't call it. It is an easy enough fix for the handful of cases where it occurs, but it is an embarrassing problem. I propose placing all these little functions inside the libMesh namespace where they will permanently reside, but for the next few releases keeping inline void here() { libMesh::deprecated(); libMesh::here(); } in the global namespace to avoid breaking everything all at once. Any objections or better ideas? -Ben |