The EncoderTool is a library to manage and read out rotary encoders connected either directly or via multiplexers to ARM based boards. Encoder push buttons are supported. Callback functions can be attached to encoder changes and button presses to allow for event driven applications
MIT License
48
stars
12
forks
source link
EncoderTool compilation errors under 0.58.3 in Arduino IDE 2.0.3 #30
TTT V1.2.0 generating errors under Arduino IDE 2.0.3. Also EncoderTool V3.1.0 are generating similar errors. Here is the compiler output. Teensy4.1 using PJRC 1.58.3 beta.
`In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:10:13: error: redefinition of 'void panic()'
10 | inline void panic() // could be weak to be overriden by a user error handler?
| ^~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:10:13: note: 'void panic()' previously defined here
10 | inline void panic() // could be weak to be overriden by a user error handler?
| ^~~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:100:33: error: redefinition of 'constexpr const size_t stdext::inplace_function_detail::InplaceFunctionDefaultCapacity'
100 | static constexpr size_t InplaceFunctionDefaultCapacity = 32;
| ^~~~~~~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:100:33: note: 'constexpr const size_t stdext::inplace_function_detail::InplaceFunctionDefaultCapacity' previously defined here
100 | static constexpr size_t InplaceFunctionDefaultCapacity = 32;
| ^~~~~~~~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:107:15: error: redefinition of 'union stdext::inplace_function_detail::aligned_storage_helper'
107 | union aligned_storage_helper
| ^~~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:107:15: note: previous definition of 'union stdext::inplace_function_detail::aligned_storage_helper'
107 | union aligned_storage_helper
| ^~~~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:131:16: error: redefinition of default argument for 'unsigned int Align'
131 | struct aligned_storage
| ^~~~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:130:81: note: original definition appeared here
130 | template <size_t Cap, size_t Align = alignof(aligned_storage_helper)>
| ^
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:149:16: error: redefinition of 'struct stdext::inplace_function_detail::wrapper'
149 | struct wrapper
| ^~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:149:16: note: previous definition of 'struct stdext::inplace_function_detail::wrapper'
149 | struct wrapper
| ^~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:155:16: error: redefinition of 'struct stdext::inplace_function_detail::vtable<R, Args>'
155 | struct vtable
| ^~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:155:16: note: previous definition of 'struct stdext::inplace_function_detail::vtable<R, Args>'
155 | struct vtable
| ^~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:202:9: error: redefinition of 'template<class R, class ... Args> stdext::inplace_function_detail::vtable<R, Args ...> stdext::inplace_function_detail::empty_vtable'
202 | empty_vtable{};
| ^~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:202:9: note: 'template<class R, class ... Args> stdext::inplace_function_detail::vtable<R, Args ...> stdext::inplace_function_detail::empty_vtable<R, Args ...>' previously declared here
202 | empty_vtable{};
| ^~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:205:8: error: redefinition of 'struct stdext::inplace_function_detail::is_valid_inplace_dst<DstCap, DstAlign, SrcCap, SrcAlign>'
205 | struct is_valid_inplace_dst : std::true_type
| ^~~~~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:205:8: note: previous definition of 'struct stdext::inplace_function_detail::is_valid_inplace_dst<DstCap, DstAlign, SrcCap, SrcAlign>'
205 | struct is_valid_inplace_dst : std::true_type
| ^~~~~~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:220:8: error: redefinition of 'struct stdext::inplace_function_detail::is_invocable_r_impl< , R, F, Args>'
220 | struct is_invocable_r_impl : std::false_type
| ^~~~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:220:8: note: previous definition of 'struct stdext::inplace_function_detail::is_invocable_r_impl< , R, F, Args>'
220 | struct is_invocable_r_impl : std::false_type
| ^~~~~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:225:8: error: redefinition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype ((declval()((declval)()...), void())), void, F, Args ...>'
225 | struct is_invocable_r_impl<
| ^~~~~~~~
226 | decltype(std::declval()(std::declval()...), void()),
| ~~~~~~~~~~~~~
227 | void,
| ~
228 | F,
| ~~
229 | Args...> : std::true_type
| ~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:225:8: note: previous definition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype ((declval()((declval)()...), void())), void, F, Args ...>'
225 | struct is_invocable_r_impl<
| ^~~~~~~~
226 | decltype(std::declval()(std::declval()...), void()),
| ~~~~~~~~~~~~~
227 | void,
| ~
228 | F,
| ~~
229 | Args...> : std::true_type
| ~~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:234:8: error: redefinition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype ((declval()((declval)()...), void())), const void, F, Args ...>'
234 | struct is_invocable_r_impl<
| ^~~~~~~~
235 | decltype(std::declval()(std::declval()...), void()),
| ~~~~~~~~~~~~~
236 | const void,
| ~~~
237 | F,
| ~~
238 | Args...> : std::true_type
| ~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:234:8: note: previous definition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype ((declval()((declval)()...), void())), const void, F, Args ...>'
234 | struct is_invocable_r_impl<
| ^~~~~~~~
235 | decltype(std::declval()(std::declval()...), void()),
| ~~~~~~~~~~~~~
236 | const void,
| ~~~
237 | F,
| ~~
238 | Args...> : std::true_type
| ~~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:243:8: error: redefinition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype (accept(declval()((declval)()...))), R, F, Args ...>'
243 | struct is_invocable_r_impl<
| ^~~~~~~~
244 | decltype(accept(std::declval()(std::declval()...))),
| ~~~~~~~~~~~~~~~~
245 | R,
| ~~
246 | F,
| ~~
247 | Args...> : std::true_type
| ~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:243:8: note: previous definition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype (accept(declval()((declval)()...))), R, F, Args ...>'
243 | struct is_invocable_r_impl<
| ^~~~~~~~
244 | decltype(accept(std::declval()(std::declval()...))),
| ~~~~~~~~~~~~~~~~
245 | R,
| ~~
246 | F,
| ~~
247 | Args...> : std::true_type
| ~~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:263:7: error: redefinition of default argument for 'unsigned int Capacity'
263 | class inplace_function; // unspecified
| ^~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:261:49: note: original definition appeared here
261 | size_t Capacity = inplace_function_detail::InplaceFunctionDefaultCapacity,
| ^~~~~~~~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:268:12: error: redefinition of 'struct stdext::inplace_function_detail::is_inplace_function< >'
268 | struct is_inplace_function : std::false_type
| ^~~~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:268:12: note: previous definition of 'struct stdext::inplace_function_detail::is_inplace_function< >'
268 | struct is_inplace_function : std::false_type
| ^~~~~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:272:12: error: redefinition of 'struct stdext::inplace_function_detail::is_inplace_function<stdext::inplace_function<Sig, Cap, Align> >'
272 | struct is_inplace_function<inplace_function<Sig, Cap, Align>> : std::true_type
| ^~~~~~~~~~~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:272:12: note: previous definition of 'struct stdext::inplace_function_detail::is_inplace_function<stdext::inplace_function<Sig, Cap, Align> >'
272 | struct is_inplace_function<inplace_function<Sig, Cap, Align>> : std::true_type
| ^~~~~~~~~~~~~~
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:282:7: error: redefinition of 'class stdext::inplace_function<R(Args ...), Capacity, Alignment>'
282 | class inplace_function<R(Args...), Capacity, Alignment>
| ^~~~~~~~~~~~~
In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3,
from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7,
from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:14,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:282:7: note: previous definition of 'class stdext::inplace_function<R(Args ...), Capacity, Alignment>'
282 | class inplace_function<R(Args...), Capacity, Alignment>
| ^~~~~~~~~~~~~
exit status 1
Compilation error: exit status 1`
I do have a customer that I need to support. I am setting up a github project and wish for the customer to use IDE2, but the project won't compile now. It was 100% functional under IDE1.8.19 and the countertype branch.
TTT V1.2.0 generating errors under Arduino IDE 2.0.3. Also EncoderTool V3.1.0 are generating similar errors. Here is the compiler output. Teensy4.1 using PJRC 1.58.3 beta. `In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:10:13: error: redefinition of 'void panic()' 10 | inline void panic() // could be weak to be overriden by a user error handler? | ^~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:10:13: note: 'void panic()' previously defined here 10 | inline void panic() // could be weak to be overriden by a user error handler? | ^~~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:100:33: error: redefinition of 'constexpr const size_t stdext::inplace_function_detail::InplaceFunctionDefaultCapacity' 100 | static constexpr size_t InplaceFunctionDefaultCapacity = 32; | ^'
107 | union aligned_storage_helper
| ^'
107 | union aligned_storage_helper
| ^)>
| ^
In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4,
from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3,
from /home/bruce/Arduino/ELS_IDE2/ELS.h:15,
from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:149:16: error: redefinition of 'struct stdext::inplace_function_detail::wrapper'
149 | struct wrapper
| ^'
149 | struct wrapper
| ^, R, F, Args>'
220 | struct is_invocable_r_impl : std::false_type
| ^, R, F, Args>'
220 | struct is_invocable_r_impl : std::false_type
| ^()((declval)()...), void())), void, F, Args ...>'
225 | struct is_invocable_r_impl<
| ^()(std::declval()...), void()),
| ()((declval)()...), void())), void, F, Args ...>'
225 | struct is_invocable_r_impl<
| ^()(std::declval()...), void()),
| ()((declval)()...), void())), const void, F, Args ...>'
234 | struct is_invocable_r_impl<
| ^()(std::declval()...), void()),
| ()((declval)()...), void())), const void, F, Args ...>'
234 | struct is_invocable_r_impl<
| ^()(std::declval()...), void()),
| (declval()((declval)()...))), R, F, Args ...>'
243 | struct is_invocable_r_impl<
| ^(std::declval()(std::declval()...))),
| (declval()((declval)()...))), R, F, Args ...>'
243 | struct is_invocable_r_impl<
| ^(std::declval()(std::declval()...))),
| >'
268 | struct is_inplace_function : std::false_type
| ^ >'
268 | struct is_inplace_function : std::false_type
| ^
~~~~~~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:100:33: note: 'constexpr const size_t stdext::inplace_function_detail::InplaceFunctionDefaultCapacity' previously defined here 100 | static constexpr size_t InplaceFunctionDefaultCapacity = 32; | ^~~~~~~~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:107:15: error: redefinition of 'union stdext::inplace_function_detail::aligned_storage_helper~~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:107:15: note: previous definition of 'union stdext::inplace_function_detail::aligned_storage_helper~~~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:131:16: error: redefinition of default argument for 'unsigned int Align' 131 | struct aligned_storage | ^~~~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:130:81: note: original definition appeared here 130 | template <size_t Cap, size_t Align = alignof(aligned_storage_helper~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:149:16: note: previous definition of 'struct stdext::inplace_function_detail::wrapper~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:155:16: error: redefinition of 'struct stdext::inplace_function_detail::vtable<R, Args>' 155 | struct vtable | ^~In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:155:16: note: previous definition of 'struct stdext::inplace_function_detail::vtable<R, Args>' 155 | struct vtable | ^~In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:202:9: error: redefinition of 'template<class R, class ... Args> stdext::inplace_function_detail::vtable<R, Args ...> stdext::inplace_function_detail::empty_vtable' 202 | empty_vtable{}; | ^~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:202:9: note: 'template<class R, class ... Args> stdext::inplace_function_detail::vtable<R, Args ...> stdext::inplace_function_detail::empty_vtable<R, Args ...>' previously declared here 202 | empty_vtable{}; | ^~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:205:8: error: redefinition of 'struct stdext::inplace_function_detail::is_valid_inplace_dst<DstCap, DstAlign, SrcCap, SrcAlign>' 205 | struct is_valid_inplace_dst : std::true_type | ^~~~~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:205:8: note: previous definition of 'struct stdext::inplace_function_detail::is_valid_inplace_dst<DstCap, DstAlign, SrcCap, SrcAlign>' 205 | struct is_valid_inplace_dst : std::true_type | ^~~~~~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:220:8: error: redefinition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<~~~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:220:8: note: previous definition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<~~~~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:225:8: error: redefinition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype ((declval~~~~~~~ 226 | decltype(std::declval~~~~~~~~~~~~~ 227 | void, |~228 | F, | ~~229 | Args...> : std::true_type |
~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:225:8: note: previous definition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype ((declval~~~~~~~ 226 | decltype(std::declval~~~~~~~~~~~~~ 227 | void, |~228 | F, | ~~229 | Args...> : std::true_type |
~~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:234:8: error: redefinition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype ((declval~~~~~~~ 235 | decltype(std::declval~~~~~~~~~~~~~ 236 | const void, |~~~ 237 | F, | ~~238 | Args...> : std::true_type |
~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:234:8: note: previous definition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype ((declval~~~~~~~ 235 | decltype(std::declval~~~~~~~~~~~~~ 236 | const void, |~~~ 237 | F, | ~~238 | Args...> : std::true_type |
~~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:243:8: error: redefinition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype (accept~~~~~~~ 244 | decltype(accept~~~~~~~~~~~~~~~~ 245 | R, | ~~246 | F, | ~~
247 | Args...> : std::true_type |
~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:243:8: note: previous definition of 'struct stdext::inplace_function_detail::is_invocable_r_impl<decltype (accept~~~~~~~ 244 | decltype(accept~~~~~~~~~~~~~~~~ 245 | R, | ~~246 | F, | ~~
247 | Args...> : std::true_type |
~~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:263:7: error: redefinition of default argument for 'unsigned int Capacity' 263 | class inplace_function; // unspecified | ^~~~In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:261:49: note: original definition appeared here 261 | size_t Capacity = inplace_function_detail::InplaceFunctionDefaultCapacity, | ^~~~~~~~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:268:12: error: redefinition of 'struct stdext::inplace_function_detail::is_inplace_function<~~~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:268:12: note: previous definition of 'struct stdext::inplace_function_detail::is_inplace_function<~~~~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:272:12: error: redefinition of 'struct stdext::inplace_function_detail::is_inplace_function<stdext::inplace_function<Sig, Cap, Align> >' 272 | struct is_inplace_function<inplace_function<Sig, Cap, Align>> : std::true_type | ^~~~~~~~~~~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:272:12: note: previous definition of 'struct stdext::inplace_function_detail::is_inplace_function<stdext::inplace_function<Sig, Cap, Align> >' 272 | struct is_inplace_function<inplace_function<Sig, Cap, Align>> : std::true_type | ^~~~~~~~~~~~~~ In file included from /home/bruce/Arduino/libraries/TeensyTimerTool/src/types.h:9, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/ITimerChannel.h:3, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/baseTimer.h:5, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/API/oneShotTimer.h:4, from /home/bruce/Arduino/libraries/TeensyTimerTool/src/TeensyTimerTool.h:3, from /home/bruce/Arduino/ELS_IDE2/ELS.h:15, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/TeensyTimerTool/src/inplace_function.h:282:7: error: redefinition of 'class stdext::inplace_function<R(Args ...), Capacity, Alignment>' 282 | class inplace_function<R(Args...), Capacity, Alignment> | ^~~~~~~~~~~~~ In file included from /home/bruce/Arduino/libraries/EncoderTool/src/config.h:26, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderBase.h:6, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlexBase.h:3, from /home/bruce/Arduino/libraries/EncoderTool/src/Multiplexed/EncPlex74165.h:7, from /home/bruce/Arduino/libraries/EncoderTool/src/EncoderTool.h:8, from /home/bruce/Arduino/ELS_IDE2/ELS.h:14, from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1: /home/bruce/Arduino/libraries/EncoderTool/src/inplace_function.h:282:7: note: previous definition of 'class stdext::inplace_function<R(Args ...), Capacity, Alignment>' 282 | class inplace_function<R(Args...), Capacity, Alignment> | ^~~~~~~~~~~~~exit status 1
Compilation error: exit status 1`
I do have a customer that I need to support. I am setting up a github project and wish for the customer to use IDE2, but the project won't compile now. It was 100% functional under IDE1.8.19 and the countertype branch.