Очень легкомысленное заявление. Во всей ветке обсуждения я не
увидел ни слова про реентерабельность функций для прерываний. Вы, Vladislav, скорее всего наметапрограммируете с template<> нечто, что компилятор преобразует в код без вызовов функций. Но это получается не всегда понятно и красиво (так считает большинство - это не суть темы). Все остальные предложения использовать классический С++ таят в себе опасность наступить на грабли, например, если данные-члены в классе будут изменяться и в прерывании, и в главном цикле. Я знаю несколько решений. 1) Отключать прерывания в главном цикле при доступе к shared данным/функциям/классам. В прерывании выставлять только флаги. 2) Использовать средства доступные в RTOS - сигналы и сообщения. 3) Генерировать (две) копии функций - для прерывания/"всего остального".