В цпп все по-другому. Теоретически можно просто весь путь рантайма повторить в компайл тайм - продублировать все операции. Но это не сработает для программ которые долго работают, т.к. компилироваться они тоже будут долго.
у меня нет цели упороться и вообще всё, что возможно, перенести в компайлтайм. Но вот создать объект в компайлтайм и инициализировать его, если можно, то так и делаю
насколько я помню, ты можешь на имеющийся тип навесить констрейнт. И будет у тебя не int со значениями от +-2 биллиона, а myint со значениями, например, (-100;+2биллиона)