#1803 Replace standard type trait classes with c++17 _v and _t variants

Open
opened 3 months ago by Moonchild · 0 comments

Part of #1800 had a JS refactor replacing std::*<T>::value and std::*<T>::type type trait classes with std::*_v<T> and std::*_t<T> respectively in /js.

We should replace these type traits throughout the tree as the _v and _t versions introduced in c++17 are less fragile. Occurrence is relatively low, and replacement is mostly mechanical (but does require close attention to detail to make proper substitutions as nested templates can get slightly confusing).

These type traits are supported by MSVC2015 and supported gcc versions (my research showed that gcc v7+ should have full and undiminished support for c++17 type traits) so should not introduce any compiler compatibility issues.

Part of #1800 had a JS refactor replacing `std::*<T>::value` and `std::*<T>::type` type trait classes with `std::*_v<T>` and `std::*_t<T>` respectively in `/js`. We should replace these type traits throughout the tree as the _v and _t versions introduced in c++17 are less fragile. Occurrence is relatively low, and replacement is mostly mechanical (but does require close attention to detail to make proper substitutions as nested templates can get slightly confusing). These type traits are supported by MSVC2015 and supported gcc versions (my research showed that gcc v7+ should have full and undiminished support for c++17 type traits) so should not introduce any compiler compatibility issues.
Moonchild added the
Enhancement
label 3 months ago
Moonchild added the
Low Risk
label 3 months ago
Moonchild added the
The whole codebase
label 3 months ago
Moonchild changed title from Replace standard typetrait classes with c++17 _v and _t variants to Replace standard type trait classes with c++17 _v and _t variants 3 months ago
This repo is archived. You cannot comment on issues.
No Milestone
No Assignees
1 Participants
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.