From fda8e64425ac862dc84f91f1c73615459b359f3d Mon Sep 17 00:00:00 2001 From: etrinh Date: Wed, 1 Jul 2020 10:39:30 +0200 Subject: [PATCH] Add support for lambda for more platforms (#74) * Fix Stm32 Eeprom handler Fix missing parenthesis Fix some type consistencies * Fix #73 Add ability to override config.h with define NO_KNX_CONFIG * change tabs to space * coding style * Allow lambda on platforms which support it, can be forced with HAS_FUNCTIONAL 0/1 * remove automatic detection of functional due to breakage with some platforms: In file included from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/char_traits.h:39:0, from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/string:40, from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/stdexcept:39, from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/array:39, from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/tuple:39, from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/functional:54, from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/group_object.h:37, from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/group_object_table_object.h:4, from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/bau_systemB.h:8, from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/bau07B0.h:4, from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx_facade.h:12, from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx.h:86, from /home/travis/build/thelsing/knx/examples/knx-bme680/knx-bme680.ino:4: /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/stl_algobase.h:243:56: error: macro "min" passed 3 arguments, but takes just 2 min(const _Tp& __a, const _Tp& __b, _Compare __comp) ^ /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/stl_algobase.h:265:56: error: macro "max" passed 3 arguments, but takes just 2 max(const _Tp& __a, const _Tp& __b, _Compare __comp) ^ To be investigated... Co-authored-by: etrinh --- src/knx/group_object.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/knx/group_object.h b/src/knx/group_object.h index 0e71b96..3578c39 100644 --- a/src/knx/group_object.h +++ b/src/knx/group_object.h @@ -19,7 +19,15 @@ enum ComFlag class GroupObject; -#ifdef __linux__ +#ifndef HAS_FUNCTIONAL +# if defined(__linux__) || defined(ARDUINO_ARCH_ESP32) || defined(ARDUINO_ARCH_STM32) +# define HAS_FUNCTIONAL 1 +# else +# define HAS_FUNCTIONAL 0 +# endif +#endif + +#if HAS_FUNCTIONAL #include typedef std::function GroupObjectUpdatedHandler; #else