Для всего маркетинга Sun Java - не просто лучший C ++, и фактически не поддерживает многие идиомы и парадигмы, поддерживаемые C ++. Это затрудняет автоматический перевод. Как вы должны автоматически превратить иерархию множественного наследования в иерархию единого наследования Java? (Обратите внимание, я не говорю, что иерархия с множественным наследованием - хорошая вещь, только то, что она явно разрешена в C ++). Более фундаментально, как бы вы представили функцию указателя на член в Java? Или обработать различия между разрешением перегрузки Java и C ++?
Java добавила дженерики несколько лет назад, но намеренно сделала их менее мощными, чем шаблоны C ++. Независимо от того, была ли это хорошая идея, она ограничивает возможности автоматического перевода с использованием сильно шаблонизированного кода.
Помимо использования какого-либо исследовательского компилятора, который может превратить C ++ в байт-код Java, я боюсь, что вы можете застрять при переводе вручную.