It seems that the only real "solution" to this problem is that I need specify each version of the operator. Instead of one operator with only one type, you'd need four overloaded operators for two types and eight overloaded operators for three types. That's a SHITLOAD of operators! Imagine that! C++ gives you 29 operators (maybe I forgot some or so) you can use to combine to objects. It's a total of fucking 232 operators! Even if you write them all in a line, it's a bit of shame you only need to make so little changes. So I'm thinking about another solution, probably involving some kind of template meta programming to make classes with only functions gettin inserted inline during compile time. Yeah, so I can keep it down to only 29 single, component-wise operations. Hope I can also find a way to conveniently pass settings and so on, making it useful all kinds of other, more special functions.
But geez, 232 is aBIG number... I'd rather prefer going the hacky way this time, I think it's just too much annoying work to do for many many rather simply changes.