I have the following scenario: I have a struct `template<typename CType, int D>
struct Point` in which I want to overload the operators < and >. Here comes the catch and the point I am not sure about: I want different implementations of < and > depending on if CType is float/double or int. Right now I'm doing this using typid from typeinfo, but I feel like this is not elegant. How do I go about doing this in a clean way?