В типах c ++ диапазоны могут отличаться и варьироваться от одной реализации (компилятор / архитектура) к другой, поэтому нет стандартных сравнений типов Java-C ++, поскольку нет стандартных размеров типов C ++.
Но в большинстве современных архитектур двойники C ++ являются стандартными двойниками IEEE 754, как и в Java. Поэтому, хотя код не будет строго переносимым на некоторые редкие архитектуры, он чаще всего будет работать в любых архитектурах x86 / x86_64.
В комментариях к предыдущему ответу был задан вопрос, на который вы не обращались: что не работает в вашей реализации?