nRF52832 - #include <set> breaks compilation on PlatformIO but compiles fine on ArduinoIDE

Weird error, maybe someone can help me. Just including #include <set> (or any other std C++ library like <list> or <vector>) into an empty sketch or main.cpp breaks compilation on PlatformIO, but compiles fine under ArduinoIDE.

Error message on PlatformIO:

c:\users\beegee.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:243:56: error: macro “min” passed 3 arguments, but takes just 2

Settings:

PlatformIO
Home V3.1.0
Core 4.2.1a3
Nordic nRF52 platform V4.0.0

platformio.ini

[env:adafruit_feather_nrf52832]
platform = nordicnrf52
board = adafruit_feather_nrf52832
framework = arduino

ArduinoIDE
Version 1.8.10
Board Adafruit nRF52 V 0.18.0

Example sketch:

#include <Arduino.h>
#include <set>
void setup() { 
// put your setup code here, to run once: 
} 
void loop() { 
// put your main code here, to run repeatedly: 
}

Compiler output on ArduinoIDE

B:\DevTools\Arduino\arduino-builder -dump-prefs -logger=machine -hardware B:\DevTools\Arduino\hardware -hardware C:\Users\beegee\AppData\Local\Arduino15\packages -tools B:\DevTools\Arduino\tools-builder -tools B:\DevTools\Arduino\hardware\tools\avr -tools C:\Users\beegee\AppData\Local\Arduino15\packages -built-in-libraries B:\DevTools\Arduino\libraries -libraries B:\Projects\Arduino\libraries -fqbn=adafruit:nrf52:feather52832:softdevice=s132v6,debug=l0 -ide-version=10810 -build-path C:\Users\beegee\AppData\Local\Temp\arduino_build_751948 -warnings=default -build-cache C:\Users\beegee\AppData\Local\Temp\arduino_cache_195923 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\beegee\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.arm-none-eabi-gcc-7-2017q4.path=C:\Users\beegee\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.nrfjprog.path=C:\Users\beegee\AppData\Local\Arduino15\packages\adafruit\tools\nrfjprog\9.4.0 -prefs=runtime.tools.nrfjprog-9.4.0.path=C:\Users\beegee\AppData\Local\Arduino15\packages\adafruit\tools\nrfjprog\9.4.0 -verbose B:\Projects\Arduino\set-test\set-test.ino
B:\DevTools\Arduino\arduino-builder -compile -logger=machine -hardware B:\DevTools\Arduino\hardware -hardware C:\Users\beegee\AppData\Local\Arduino15\packages -tools B:\DevTools\Arduino\tools-builder -tools B:\DevTools\Arduino\hardware\tools\avr -tools C:\Users\beegee\AppData\Local\Arduino15\packages -built-in-libraries B:\DevTools\Arduino\libraries -libraries B:\Projects\Arduino\libraries -fqbn=adafruit:nrf52:feather52832:softdevice=s132v6,debug=l0 -ide-version=10810 -build-path C:\Users\beegee\AppData\Local\Temp\arduino_build_751948 -warnings=default -build-cache C:\Users\beegee\AppData\Local\Temp\arduino_cache_195923 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\beegee\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.arm-none-eabi-gcc-7-2017q4.path=C:\Users\beegee\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.nrfjprog.path=C:\Users\beegee\AppData\Local\Arduino15\packages\adafruit\tools\nrfjprog\9.4.0 -prefs=runtime.tools.nrfjprog-9.4.0.path=C:\Users\beegee\AppData\Local\Arduino15\packages\adafruit\tools\nrfjprog\9.4.0 -verbose B:\Projects\Arduino\set-test\set-test.ino
Using board 'feather52832' from platform in folder: C:\Users\beegee\AppData\Local\Arduino15\packages\adafruit\hardware\nrf52\0.18.0
Using core 'nRF5' from platform in folder: C:\Users\beegee\AppData\Local\Arduino15\packages\adafruit\hardware\nrf52\0.18.0
Detecting libraries used...
"C:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -mcpu=cortex-m4 -mthumb -c -g -w -mfloat-abi=hard -mfpu=fpv4-sp-d16 -u _printf_float -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -w -x c++ -E -CC -DF_CPU=64000000 -DARDUINO=10810 -DARDUINO_NRF52832_FEATHER -DARDUINO_ARCH_NRF52 "-DARDUINO_BSP_VERSION=\"0.18.0\"" -DNRF52832_XXAA -DNRF52 -DSOFTDEVICE_PRESENT -DARDUINO_NRF52_ADAFRUIT -DNRF52_SERIES -DLFS_NAME_MAX=64 -Ofast -DCFG_DEBUG=0 "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/cmsis/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/hal" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/mdk" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/soc" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/drivers/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/drivers/src" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/softdevice/s132_nrf52_6.1.1_API/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/Source/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/config" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/portable/GCC/nrf52" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/portable/CMSIS/nrf52" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/sysview/SEGGER" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/sysview/Config" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/TinyUSB" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/TinyUSB/Adafruit_TinyUSB_ArduinoCore" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/TinyUSB/Adafruit_TinyUSB_ArduinoCore/tinyusb/src" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\variants\\feather_nrf52832" "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948\\sketch\\set-test.ino.cpp" -o nul
Generating function prototypes...
"C:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -mcpu=cortex-m4 -mthumb -c -g -w -mfloat-abi=hard -mfpu=fpv4-sp-d16 -u _printf_float -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -w -x c++ -E -CC -DF_CPU=64000000 -DARDUINO=10810 -DARDUINO_NRF52832_FEATHER -DARDUINO_ARCH_NRF52 "-DARDUINO_BSP_VERSION=\"0.18.0\"" -DNRF52832_XXAA -DNRF52 -DSOFTDEVICE_PRESENT -DARDUINO_NRF52_ADAFRUIT -DNRF52_SERIES -DLFS_NAME_MAX=64 -Ofast -DCFG_DEBUG=0 "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/cmsis/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/hal" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/mdk" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/soc" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/drivers/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/drivers/src" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/softdevice/s132_nrf52_6.1.1_API/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/Source/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/config" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/portable/GCC/nrf52" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/portable/CMSIS/nrf52" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/sysview/SEGGER" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/sysview/Config" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/TinyUSB" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/TinyUSB/Adafruit_TinyUSB_ArduinoCore" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/TinyUSB/Adafruit_TinyUSB_ArduinoCore/tinyusb/src" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\variants\\feather_nrf52832" "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948\\sketch\\set-test.ino.cpp" -o "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"B:\\DevTools\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -mcpu=cortex-m4 -mthumb -c -g -mfloat-abi=hard -mfpu=fpv4-sp-d16 -u _printf_float -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -MMD -DF_CPU=64000000 -DARDUINO=10810 -DARDUINO_NRF52832_FEATHER -DARDUINO_ARCH_NRF52 "-DARDUINO_BSP_VERSION=\"0.18.0\"" -DNRF52832_XXAA -DNRF52 -DSOFTDEVICE_PRESENT -DARDUINO_NRF52_ADAFRUIT -DNRF52_SERIES -DLFS_NAME_MAX=64 -Ofast -DCFG_DEBUG=0 "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/cmsis/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/hal" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/mdk" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/soc" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/drivers/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/nrfx/drivers/src" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/nordic/softdevice/s132_nrf52_6.1.1_API/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/Source/include" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/config" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/portable/GCC/nrf52" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/freertos/portable/CMSIS/nrf52" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/sysview/SEGGER" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/sysview/Config" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/TinyUSB" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/TinyUSB/Adafruit_TinyUSB_ArduinoCore" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/TinyUSB/Adafruit_TinyUSB_ArduinoCore/tinyusb/src" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5" "-IC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\variants\\feather_nrf52832" "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948\\sketch\\set-test.ino.cpp" -o "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948\\sketch\\set-test.ino.cpp.o"
Compiling libraries...
Compiling core...
Using previously compiled file: C:\Users\beegee\AppData\Local\Temp\arduino_build_751948\core\variant.cpp.o
Using precompiled core: C:\Users\beegee\AppData\Local\Temp\arduino_cache_195923\core\core_adafruit_nrf52_feather52832_softdevice_s132v6,debug_l0_f8c92b99e329dce848aaedee1b1f27bf.a
Linking everything together...
"C:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-gcc" "-LC:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948" -Ofast -Wl,--gc-sections -save-temps "-LC:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0\\cores\\nRF5/linker" -Tnrf52832_s132_v6.ld "-Wl,-Map,C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948/set-test.ino.map" -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -u _printf_float -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align --specs=nano.specs --specs=nosys.specs -o "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948/set-test.ino.elf" "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948\\sketch\\set-test.ino.cpp.o" "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948\\core\\variant.cpp.o" -Wl,--start-group -lm "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948/..\\arduino_cache_195923\\core\\core_adafruit_nrf52_feather52832_softdevice_s132v6,debug_l0_f8c92b99e329dce848aaedee1b1f27bf.a" -Wl,--end-group
"C:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-objcopy" -O ihex "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948/set-test.ino.elf" "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948/set-test.ino.hex"
"C:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\adafruit\\hardware\\nrf52\\0.18.0/tools/adafruit-nrfutil/win32/adafruit-nrfutil.exe" dfu genpkg --dev-type 0x0052 --sd-req 0x00B7 --application "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948/set-test.ino.hex" "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948/set-test.ino.zip"
Zip created at C:\Users\beegee\AppData\Local\Temp\arduino_build_751948/set-test.ino.zip
"C:\\Users\\beegee\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-size" -A "C:\\Users\\beegee\\AppData\\Local\\Temp\\arduino_build_751948/set-test.ino.elf"
Sketch uses 22508 bytes (7%) of program storage space. Maximum is 290816 bytes.
Global variables use 3252 bytes (6%) of dynamic memory, leaving 48972 bytes for local variables. Maximum is 52224 bytes.

Compiler output on PlatformIO

>> Executing task: C:\Users\beegee\.platformio\penv\Scripts\platformio.exe run <

Processing adafruit_feather_nrf52832 (platform: nordicnrf52; board: adafruit_feather_nrf52832; framework: ardu
ino)
-------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/nordicnrf52/adafruit_feather_nrf52832.html
PLATFORM: Nordic nRF52 4.0.0 > Adafruit Bluefruit nRF52832 Feather
HARDWARE: NRF52832 64MHz, 64KB RAM, 512KB Flash
DEBUG: Current (jlink) External (jlink, stlink)
PACKAGES:
 - framework-arduinoadafruitnrf52 1.1405.191023 (14.5)
 - tool-sreccat 1.164.0 (1.64)
 - toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 10 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio\build\adafruit_feather_nrf52832\src\main.cpp.o
Compiling .pio\build\adafruit_feather_nrf52832\FrameworkArduino\Adafruit_TinyUSB_Core\tinyusb\src\class\midi\midi_device.c.o
Compiling .pio\build\adafruit_feather_nrf52832\FrameworkArduino\Adafruit_TinyUSB_Core\tinyusb\src\class\msc\msc_device.c.o
Compiling .pio\build\adafruit_feather_nrf52832\FrameworkArduino\Adafruit_TinyUSB_Core\tinyusb\src\class\vendor\vendor_device.c.o
In file included from c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_tree.h:63:0,
                 from c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\set:60,
                 from src\main.cpp:2:
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\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)
                                                        ^
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\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)
                                                        ^
Compiling .pio\build\adafruit_feather_nrf52832\FrameworkArduino\Adafruit_TinyUSB_Core\tinyusb\src\common\tusb_fifo.c.o
In file included from src\main.cpp:1:0:
Compiling .pio\build\adafruit_feather_nrf52832\FrameworkArduino\Adafruit_TinyUSB_Core\tinyusb\src\device\usbd.c.o
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:195:5: error: expected unqualified-id before 'const'
     min(const _Tp& __a, const _Tp& __b)
     ^
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:195:5: error: expected ')' before 'const'
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:195:5: error: expected ')' before 'const'
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:195:5: error: expected initializer before 'const'
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:219:5: error: expected unqualified-id before 'const'
     max(const _Tp& __a, const _Tp& __b)
     ^
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:219:5: error: expected ')' before 'const'
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:219:5: error: expected ')' before 'const'
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:219:5: error: expected initializer before 'const'
In file included from c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_tree.h:63:0,
                 from c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\set:60,
                 from src\main.cpp:2:
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:246:7: error: expected primary-expression before 'if'
       if (__comp(__b, __a))
       ^~
Compiling .pio\build\adafruit_feather_nrf52832\FrameworkArduino\Adafruit_TinyUSB_Core\tinyusb\src\device\usbd_control.c.o
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:246:7: error: expected '}' before 'if'
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:246:7: error: expected ';' before 'if'
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:248:7: error: expected unqualified-id before 'return'
       return __a;
       ^~~~~~
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:268:7: error: expected primary-expression before 'if'
       if (__comp(__a, __b))
       ^~
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:268:7: error: expected '}' before 'if'
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:268:7: error: expected ';' before 'if'
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:270:7: error: expected unqualified-id before 'return'
       return __a;
       ^~~~~~
c:\users\beegee\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\7.2.1\bits\stl_algobase.h:271:5: error: expected declaration before '}' token
     }
     ^
*** [.pio\build\adafruit_feather_nrf52832\src\main.cpp.o] Error 1
======================================== [FAILED] Took 1.28 seconds ========================================
The terminal process terminated with exit code: 1

The cause of the error are macros for min and max:

#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))

This is as much an anti-pattern as it gets. It will prevent any other function, variable, member function, class etc. from being called min or max. Unsurprisingly, it causes a conflict.

Adafruit have recognized this in the mean time and have fixed it:

Before (Adafruit_nRF52_Arduino/Arduino.h at d3f3b34319fefddf8ac67bd4a0587e189ab4cbb8 · adafruit/Adafruit_nRF52_Arduino · GitHub)

#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))

After (Adafruit_nRF52_Arduino/Arduino.h at master · adafruit/Adafruit_nRF52_Arduino · GitHub)

#ifdef __cplusplus
  template<class T, class L> 
  auto min(const T& a, const L& b) -> decltype((b < a) ? b : a)
  ...

Unfortunately, PlatformIO still uses the old version.

Often it’s possible to force a newer version a framework like so:

platform_packages = framework-arduinoadafruitnrf52 @ https://github.com/adafruit/Adafruit_nRF52_Arduino#master

Unfortunately, it doesn’t work. It doesn’t compile due to some other dependencies that I don’t understand.

So the pragmatic version is to change your code:

#include <Arduino.h>
#undef min
#undef max
#include <set>
void setup() { 
    ...

And if you need the min and max functions:

#include <Arduino.h>

#undef min
#undef max

template<class T, class L> 
auto min(const T& a, const L& b) -> decltype((b < a) ? b : a)
{ return (b < a) ? b : a; }

template<class T, class L> 
auto max(const T& a, const L& b) -> decltype((b < a) ? b : a)
{ return (a < b) ? b : a; }

#include <set>

void setup() {
  ...
1 Like

Thanks for the quick reply. Will try your solution.

I found another solution by reversing the #include order. First including <set> and <Arduino.h> after it works as well.

1 Like