1. В С++ сделать это можно 2. Смысла в этом нет, при проектировании модулей нужно сразу оговаривать в каком диапазоне и в каком формате хранятся числа. И все преобразования делать уже на стыке модулей, но не в них самих. Пытаться сложить 1 Км+ 1нм может показаться заманчивой идеей, но разрядность чисел никто не отменял и проблем от такой нотации станет только больше
3. Для совсем упоротых есть C++14 User-defined literals, но у всеми любимых TI CGT, IAR и прочих "типасерьезных" компиляторов с поддержкой стандартов полный трындец (скажите спасибо, если завезли C++03, когда уже вышел C++17).
http://en.cpprefer …/language/user_literal