Вообще, вот тут уже интересное начинается. Для дотнета я бы просто написал верификатор, который бы по скомпиленному коду бегал и проверял, что типами, которыми не надо, не инстанцировали того, чего не надо.
на самом деле там была какая-то история про раст, но я забыл. Какие-то в расте есть защиты для захватываемого и я подумал, можно ли сделать это на плюсах средствами языка