#ifndef _SPI_HPP_ #define _SPI_HPP_ #include template struct SPI { uint8_t trx_u8(const uint8_t& data) { return static_cast(this)->trx_u8Impl(data); } void tx(const uint8_t& data) { static_cast(this)->txImpl(data); } uint8_t rx() { return static_cast(this)->rxImpl(); } }; #endif // _SPI_HPP_