1 #ifndef ENHANCE_CPP_GROUP
2 #define ENHANCE_CPP_GROUP
42 #define DEFINE_CLASS_NAME(objname) \
43 static const char *static_class_name() { return (objname); } \
44 virtual const char *class_name() const { return static_class_name(); }
54 #define FUNCDEF(func_in) \
55 const char *func = (const char *)func_in; \
56 application::frame_tracking_instance __trail_of_function(static_class_name(), func, \
57 __FILE__, __LINE__, true);
62 #define BASE_FUNCTION(func) astring just_function = astring(func); \
63 astring function_name = static_class_name(); \
64 function_name += astring("::") + just_function
69 #define FUNCTION(func) BASE_FUNCTION(func); \
70 function_name += ": "; \
71 application::update_current_stack_frame_line_number(__LINE__)
74 #define BASE_INSTANCE_FUNCTION(func) astring just_function = astring(func); \
75 astring function_name = instance_name(); \
76 function_name += astring("::") + just_function
81 #define INSTANCE_FUNCTION(func) BASE_INSTANCE_FUNCTION(func); \
82 function_name += ": "; \
83 application::update_current_stack_frame_line_number(__LINE__)
91 #define __WHERE__ basis::a_sprintf("%s [line %d]", __FILE__, __LINE__)
Provides missing language features in C++.
Constants and objects used throughout HOOPLE.
The guards collection helps in testing preconditions and reporting errors.