There is a very nice MQTT client C++ implementation that works great on embedded devices too. As it so happens, it is right now under formal review for inclusion into Boost.
It is called async-mqtt5 and can be found at:
https://github.com/mireo/async-mqtt5/