I\'ve read about how it is usually best not to define anything in header files because redundant copies are made for every other file that includes the header file. However,
(1) I can't define the static inline method out side of the class definition or at the .cpp file.
You can define a static inline method outside the class within the header file. Demo. You cannot define them in .cpp file.
(2) should I bother to use static inline methods at all
I would say, they can be easily avoided. If you need to see the body in the header file for your own purpose, then only make them inline.
(3) Should I even define anything method or variable in a header file (what about constants)
static const data of integral
type.static methods can be defined inside the class bodystatic inline methods can be defined inside class body or outside
the class body within the header filestatic data members must be defined in single .cpp file to adhere with One Definition Rule