<https://bugzilla.mozilla.org/show_bug.cgi?id=1625138> replaced most of our 
type traits in
"mozilla/TypeTraits.h" with their counterparts from <type_traits>. So for 
example instead of
`mozilla::IsSame` and `mozilla::EnableIf`, it's now necessary to use 
`std::is_same` and
`std::enable_if`. Or for slightly more concise code, `std::is_same_v` (from 
C++17) and
`std::enable_if_t` (from C++14).

"mozilla/TypeTraits.h" still contains `mozilla::IsDestructible`, because using
`std::is_destructible` currently breaks the MOZ_CAN_RUN_SCRIPT analysis on some 
platforms
(<https://bugzilla.mozilla.org/show_bug.cgi?id=1625152>). And it also contains 
`mozilla::IsPod`:
While `<type_traits>` does provide `std::is_pod`, we can't easily replace 
`mozilla::IsPod` with
`std::is_pod`, because we're adding specialisations to `mozilla::IsPod`, which 
isn't allowed to do
for `std::is_pod`. `std::is_pod` also gets deprecated in C++20, so we probably 
shouldn't use it
anyway. Most likely we need to perform a case by case analysis for every 
`mozilla::IsPod` use to
find a suitable replacement.

Thanks,
André
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to