<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