Как уже было сказано, вы не можете определить перегруженные операторы для внутренних типов.
Однако, если вы хотите воспользоваться неявным преобразованием типов, вы можете достичь чего-то близкого к тому, что вам нужно, с помощью одного приведения к одному из ваших типов с плавающей запятой, который реализует перегруженный оператор%.
class FloatWrapper
{
private:
float m_Float;
public:
FloatWrapper(float Value):
m_Float(Value)
{
}
friend float operator%(const FloatWrapper& lhs, const FloatWrapper& rhs)
{
//your logic here...
return (int)lhs.m_Float % (int)rhs.m_Float;
}
};
int main()
{
float Value1 = 15.0f;
float Value2 = 4.0f;
float fMod1 = (FloatWrapper)Value1 % Value2;
float fMod2 = Value1 % (FloatWrapper)Value2;
return 0;
}