I started experimenting with Raspberry Pi GPIO using Python [1,2]. Then the original Gertboard kit was released so I ordered and built one which enabled me to play with BCM2835 peripheral IO beyond basic GPIO. At the time the Gertboard had test and example C code available  that, as with the Python case, I felt could be expressed more cleanly. I thought it would be interesting to see what advantages C++, hopefully C++11, features and idioms might provide.
I have been adding support for peripheral types to my Raspberry Pi C++ peripherals library and as a result have been reading the BCM2835 ARM Peripherals data sheet document rather closely as well as the document’s errata page on eLinux. I, like others, have been bumping into documentation errors – and even added one to the eLinux list errata.
In this article I am going to discuss an alternative approach to using GPIO on a Raspberry Pi in Python to that taken by an early version the RPi.GPIO package. The approach occurred to me in 2012 while making a start at hardware interfacing and programming using a Raspberry Pi with some LEDs, switches and the like that had been collecting dust for 20 to 30 years. To read and write data to the GPIO lines I thought I would start with Python and the RPi.GPIO package.