It’s not entirely clear from your description if you really need to have is_arithmetic be true for your fixed_point class or if you just want to have some predicate that is true for both the built-in arithmetic types and your fixed_point class.

If the former, then you will likely run afoul of problems, for the reasons previously pointed out.

Hopefully it is the latter — in which case you should just define your own predicate with the appropriate logic (true for fixed_point or is_arithmetic types).

Chad