ArduCAM / ArduCAM_ESP32S_UNO

ArduCAM ESP32 Series Development Boards
52 stars 19 forks source link

Re-definition of swap macro causes problems when including stdlibc++ dependencies #13

Open sidoh opened 5 years ago

sidoh commented 5 years ago

https://github.com/ArduCAM/ArduCAM_ESP32S_UNO/blob/master/libraries/ArduCAM/ArduCAM.h#L177

Example compile errors:

Compiling .pioenvs/esp32/lib7a2/ArduCAM_ID2094/ArduCAM.cpp.o
In file included from /Users/cmullins/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/vector:64:0,
from .piolibdeps/Bleeper_ID1966/src/Helpers/utils.h:1,
from .piolibdeps/Bleeper_ID1966/src/Bleeper.h:3,
from src/main.cpp:8:
/Users/cmullins/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_vector.h:103:36: error: macro "swap" requires 3 arguments, but only 2 given
std::swap(_M_start, __x._M_start);
^
/Users/cmullins/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_vector.h:104:38: error: macro "swap" requires 3 arguments, but only 2 given
std::swap(_M_finish, __x._M_finish);
^
/Users/cmullins/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_vector.h:105:54: error: macro "swap" requires 3 arguments, but only 2 given
std::swap(_M_end_of_storage, __x._M_end_of_storage);
^
/Users/cmullins/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_vector.h:1194:23: error: macro "swap" requires 3 arguments, but only 1 given
swap(vector& __x)
^
/Users/cmullins/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_vector.h:1559:60: error: macro "swap" passed 4 arguments, but takes just 3
swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y)
^
/Users/cmullins/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_vector.h:1560:19: error: macro "swap" requires 3 arguments, but only 1 given
{ __x.swap(__y); }
^
In file included from /Users/cmullins/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/vector:65:0,
from .piolibdeps/Bleeper_ID1966/src/Helpers/utils.h:1,
from .piolibdeps/Bleeper_ID1966/src/Bleeper.h:3,
from src/main.cpp:8:

It doesn't seem like anything in ArduCAM even uses this swap macro, so maybe it's safe to remove it? I was able to compile after commenting it out for the platform I'm using (ESP32).