Нужно написать несколько классов, инкапсулирующих работу с аппаратной частью. Каждый класс обращается к своему устройству, поэтому переиспользования не будет совершенно точно. Первая мысль — класс, где все члены статические. Но потом я вспомнил, что в С++ какие-то сложные правила времени жизни статических объектов, а ещё и может быть сгенерирован код, защищающий от условия гонок. Поэтому вторая мысль — Си-подобный код, спрятанный в namespace. Есть у второго подхода минусы перед первым?