diff --git a/include/boost/utility/object_tracked.hpp b/include/boost/utility/object_tracked.hpp index 5925a82..a208cfa 100644 --- a/include/boost/utility/object_tracked.hpp +++ b/include/boost/utility/object_tracked.hpp @@ -1,15 +1,21 @@ //Simple class which keeps track of members #ifndef UTILITY_OBJECT_TRACKED_HPP_LJE20040112 #define UTILITY_OBJECT_TRACKED_HPP_LJE20040112 +//#define UTILITY_OBJECT_TRACKED_SET_OF_OBJECTS_TRACE_MODE +//#define UTILITY_OBJECT_TRACKED_TRACE_MODE #include #include "boost/utility/obj_id.hpp" +#if defined(UTILITY_OBJECT_TRACKED_SET_OF_OBJECTS_TRACE_MODE)\ + || defined(UTILITY_OBJECT_TRACKED_TRACE_MODE) #include "boost/io/filters/mout.hpp" +#endif namespace utility { class object_tracked : public obj_id { - public: + private: + struct set_of_objects_tracked : public std::set @@ -18,8 +24,18 @@ class object_tracked std::set super_type ; + ~set_of_objects_tracked(void) + { + #ifdef UTILITY_OBJECT_TRACKED_SET_OF_OBJECTS_TRACE_MODE + mout()<<"set_of_objects_tracked-\n"; + #endif + } set_of_objects_tracked(void) - {} + { + #ifdef UTILITY_OBJECT_TRACKED_SET_OF_OBJECTS_TRACE_MODE + mout()<<"set_of_objects_tracked+\n"; + #endif + } void reset(void) { @@ -37,23 +53,36 @@ class object_tracked set_of_objects_tracked our_members ; + public: + static + void + reset(void) + { + our_members.reset(); + } static unsigned members_size(void) { - return our_members.size(); + return our_members.size(); } object_tracked(void) { our_members.insert(this); #ifdef UTILITY_OBJECT_TRACKED_TRACE_MODE - mout()<<"object_tracked+:id="< namespace utility @@ -20,17 +20,17 @@ trace_scope ;} ~trace_scope(void) { - ; --mout() + ; --mout() ; std::string l_context("===>Exit:") - ; mout()<Enter:") - ; mout()<