From: John P. <pet...@cf...> - 2004-03-21 07:41:50
|
I have introduced the "mutable" keyword into the library in a relatively innocuous location to see if it successfully compiles on all of our different architectures. The PointLocatorTree class caches a pointer to the last element it found in its operator() method in the hopes that the next element it looks for will be nearby. However the operator() method should really be const. This is the canonical use of the mutable keyword. It allows only the _element member to be modified even in const member functions. This keyword has been in the standard for some time, so I don't forsee any problems. If your compiler doesn't like it, let me know and I will reverse the change. There is a reason for all this fuss, since some day I would like to cache some results in the Mesh such as n_active_elem() and n_active_elem_of_type() which are O(n elements) operations at this time. If mutable compiles without problems that is one step in the right direction. -John |