Для начала, язык C++ позволяет реализовать библиотечную поддержку размерностей. Вроде, они есть в библиотеке boost, среди других ответов была ссылка на библиотеку с единицами Си
В стандарте C++ из размерностей есть только размерности для времени (всякие секунды-наносекунды), они используются для всевозможных таймеров. Поддержка физических размерностей есть пока только в сторонних библиотеках.
В среде для математических расчётов Mathcad есть проверка размерностей и она интегрирована в систему типов среды (а типы там выводятся по алгоритму Хинлди-Милнера — это очень круто для тех, кто в теме). Доступны все единицы системы Си, можно добавлять свои единицы. Язык программирования там довольно необычный — вводится не как текст ASCII, а как математические формулы в старых версиях MS Word, но это тоже полноценный язык программирования с функциями высшего порядка.
На Хабре можно найти статью разработчика компилятора языка программирования PL/1 Дмитрия Караваева, который добавил в свой язык проверку физических размерностей:
В комментариях к этой статье дали ещё несколько ссылок на библиотеки для C++, Python и Julia:
На сколько мне известно, компилятор PL/1, разрабатываемый Дмитрием Караваемым, используется только в том отделе, где он работает.
Вывод в том, что языков со встроенной поддержкой не так много, но они есть (Mathcad, компилятор PL/1, используемый только в одном отделе одного НИИ). В ряд языков можно добавить поддержку размерностей на уровне библиотеки. Но по факту поддержка физических на уровне языка программирования не так уж и нужна, чтобы её реализовывать.