9 #ifndef IMPKERNEL_OBJECT_MACROS_H
10 #define IMPKERNEL_OBJECT_MACROS_H
11 #include <IMP/kernel_config.h>
25 #define IMP_OBJECT_METHODS(Name) \
27 virtual std::string get_type_name() const IMP_OVERRIDE { return #Name; } \
28 virtual ::IMP::VersionInfo get_version_info() const IMP_OVERRIDE { \
29 return ::IMP::VersionInfo(get_module_name(), get_module_version()); \
33 virtual ~Name() { IMP::Object::_on_destruction(); } \
42 #define IMP_OBJECTS(Name, PluralName) \
44 typedef IMP::Vector<IMP::Pointer<Name> > PluralName; \
46 typedef IMP::Vector<IMP::WeakPointer<Name> > PluralName##Temp;
48 #define IMP_GENERIC_OBJECT(Name, lcname, targument, carguments, cparguments) \
49 typedef Generic##Name<targument> Name; \
50 template <class targument> \
51 Generic##Name<targument> *create_##lcname carguments { \
52 return new Generic##Name<targument> cparguments; \
62 #define IMP_NEW(Typename, varname, args) \
63 IMP::Pointer<Typename> varname(new Typename args)
Various general useful macros for IMP.
Logging and error reporting support.
Various general useful macros for IMP.
A nullptr-initialized pointer to an Object.
A class for storing lists of IMP items.
A nullptr-initialized pointer to an IMP Object.