Цитата(Nixon @ Mar 20 2018, 13:23)

По поводу эффективности.
Цифры действительно неплохие ... для поклонников ногодрыга

Но в остальных случаях особой разницы не будет:
1) скорость настройки портов в подавляющем число проектов не важна, т.к. это делается один раз при запуске
2) может иметь значение лишь скорость чтения/записи пинов, но это делается несколькими строчками инлайн кода, годится любое решение, на классах и без
3) если делать на классах, то размер занимаемого кода (озу/флэш) для классов пинов тоже не имеет критичного значение, т.к. в камне число пинов ограничено физически, а у толстых камней и озу/флэши всегда больше.
Потому, имхо, применение той или иной обертки (не только для пинов) должно быть предельно очевидным, ознозначным и тривиальным. Т.е. читаемым должен прежде всего быть код, а не сама библиотека.
В данном случае такое обилие способов применения мне лично кажется избыточным (судя по приведенным примерам), ну, главный "недостаток" - повышенные требования к компилятору: C++11/14.
В целом, пример интересный и полезный, ну, хотя бы в образовательных целях