template <std::size_t SIZE>
int run_once(const Pattern<SIZE> &p);
Ну даже если забить на С и работать только с С++. Это же получается что оно будет генерить куча функций из-за того что шаблон с параметром. Не очень круто, потому что код для микроконтроллера