Convenient C++ programming with Arduino
About
The ATmega328 has 32 KB ISP flash memory and 2 KB SRAM.
Tech
Variable-Length Argument Lists
https://stackoverflow.com/questions/1657883/variable-number-of-arguments-in-c
https://stackoverflow.com/questions/16337459/undefined-number-of-arguments
http://www.varesano.net/blog/fabio/functions-variable-lenght-arguments-arduino
initializer_list
Modern C++
http://www.murrayc.com/permalink/2015/12/05/modern-c-variadic-template-parameters-and-tuples/
Standard Template Library
Our pick
- The Standard Template Library (STL) for AVR with C++ streamsVersion 1.1.1 (most recent as of 2015-11-01)
Other choices
https://andybrown.me.uk/2011/01/15/the-standard-template-library-stl-for-avr-with-c-streams/
https://arduino.stackexchange.com/questions/9835/problem-with-declaring-2d-vector-in-arduino
- EASTL – Electronic Arts Standard Template Library
Using the “Vector” container object
https://github.com/maniacbug/StandardCplusplus/blob/master/vector
https://github.com/maniacbug/StandardCplusplus/blob/master/vector.cpp
- Topic: container for Objects like c++ vector?
- LinkedList for Arduino
Memory profiling
Object initialization
Float to String
Misc
Simulation
Operating Systems
- AVR RTOS - Atomthreads: Open Source RTOS
MQTT interfaces
https://github.com/adafruit/Adafruit_MQTT_Library/blob/master/Adafruit_MQTT.cpp
https://github.com/adafruit/Adafruit_MQTT_Library/blob/master/Adafruit_MQTT_Client.cpp
http://knolleary.net/2009/01/29/updated-client-for-mqtt-library/
https://github.com/knolleary/pubsubclient/blob/master/src/PubSubClient.cpp
https://github.com/andreareginato/pubsubclient/commit/cdec8bf33742883057120e6a27fc3e3591991e6e