1 #ifndef ENHANCE_CPP_GROUP
2 #define ENHANCE_CPP_GROUP
31 #define frame_tracking_instance
32 #define __trail_of_function(a, b, c, d, e)
45 #define DEFINE_CLASS_NAME(objname) \
46 static const char *static_class_name() { return (objname); } \
47 virtual const char *class_name() const { return static_class_name(); }
57 #define FUNCDEF(func_in) \
58 const char *func = (const char *)func_in; \
59 frame_tracking_instance __trail_of_function(static_class_name(), func, \
60 __FILE__, __LINE__, true)
65 #define BASE_FUNCTION(func) astring just_function = astring(func); \
66 astring function_name = static_class_name(); \
67 function_name += astring("::") + just_function
72 #define FUNCTION(func) BASE_FUNCTION(func); \
73 function_name += ": "; \
74 update_current_stack_frame_line_number(__LINE__)
77 #define BASE_INSTANCE_FUNCTION(func) astring just_function = astring(func); \
78 astring function_name = instance_name(); \
79 function_name += astring("::") + just_function
84 #define INSTANCE_FUNCTION(func) BASE_INSTANCE_FUNCTION(func); \
85 function_name += ": "; \
86 update_current_stack_frame_line_number(__LINE__)
94 #define __WHERE__ basis::a_sprintf("%s [line %d]", __FILE__, __LINE__)
Constants and objects used throughout HOOPLE.
The guards collection helps in testing preconditions and reporting errors.