Open Silver-Fang opened 4 months ago
This may indicate a problem with the compiler's handling of SFINAE.
At present, I need to do the following workaround for void_t:
template<class... _Types>
struct void_s {
using type = void;
};
template<class T, class... _Types>
struct void_s<T, _Types...> {
using type = T;
};
template<typename... _Types>
using void_t = typename void_s<_Types...>::type;
If anyone else is having a similar problem, try my workaround idea.
Describe the problem
To reproduce
Expected behavior
This code can be compiled in both MSVC and Godbolt. Even in the Arduino IDE, the value of
constexpr auto BB
is correctly displayed asbool true
. But once it enters the compile phase, the compiler mistakenly tries to match the specialized_Allow_inheriting_unwrap
and then fails becauseunsigned int *
has no members to reference.Arduino CLI version
0.35.2
Operating system
Windows
Operating system version
Windows 11
Additional context
This issue only appears on the Arduino Due SAM platform. The AVR platform is normal.
Issue checklist