From 14882fed22ee38d352bd9b32a40c211726dd1c84 Mon Sep 17 00:00:00 2001 From: Richie Vos Date: Mon, 3 Apr 2023 20:46:41 -0700 Subject: [PATCH] Build cleanly under c++14 Other parts of TinyConsole require >= c++ 14, but this forces c++17. That's not necessarily a problem, but it triggered some build warnings for me, so in case that's unintentional I'm sending this diff. Exact warning: ``` Compiling .pio/build/esp32dev/lib4a7/TinyMqtt/TinyMqtt.cpp.o .pio/libdeps/esp32dev/TinyMqtt/src/TinyMqtt.cpp: In member function 'MqttError MqttBroker::subscribe(MqttClient*, const Topic&, uint8_t)': .pio/libdeps/esp32dev/TinyMqtt/src/TinyMqtt.cpp:221:13: warning: structured bindings only available with -std=c++17 or -std=gnu++17 for(auto& [retained_topic, retain]: retained) ``` I personally just switched to c++17 as my fix/workaround. --- src/TinyMqtt.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/TinyMqtt.cpp b/src/TinyMqtt.cpp index 2a43d89..c634eeb 100644 --- a/src/TinyMqtt.cpp +++ b/src/TinyMqtt.cpp @@ -218,8 +218,10 @@ void MqttBroker::loop() MqttError MqttBroker::subscribe(MqttClient* client, const Topic& topic, uint8_t qos) { debug("MqttBroker::subscribe to " << topic.str() << ", retained=" << retained.size() ); - for(auto& [retained_topic, retain]: retained) + for(auto& retainItem: retained) { + auto &retained_topic = retainItem.first; + auto &retain = retainItem.second; debug(" retained: " << retained_topic.str()); if (topic.matches(retained_topic)) {