I have a problem with the documentation of the various ClassDef macros and when to use which of them. If I remember correctly there was such a documentation in previous times.
Could you help me to find the proper documentation about the ClassDef macros.
ClassDef: Regular
ClassDefOverride: Use this one if your class definition use the c++ `override` keyword for virtual functions (If you use the regular ClassDef, the compiler might warn that the function declared in the ClassDef are missing the override keyword).
ClassDefNV: Use if you class does not (and shoud not) have a virtual function table (i.e. no virtual function in the class and any of its base classes
With this said, often you don’t need ClassDef or inheritance from TObject at all, depending on what you want to achieve (e.g. just for reading/writing the class with ROOT, you don’t need them).