c++ - 在 C++ 中,是否有针对 "copying"引用类别和 cv 资格的拟议类型特征助手?

标签 c++ typetraits c++23

对于 this answer 中假设的调用运算符中的 SFINAE我需要一个类型特征,将引用类别和 const/volatile 限定从一种类型“复制”到另一种类型:

template <typename T, typename U>
using copy_category_and_qualifications_t = [...];

copy_category_and_qualifications_t<int, char>             // char
copy_category_and_qualifications_t<const int&, char>      // const char&
copy_category_and_qualifications_t<volatile int&&, char>  // volatile char&&

我似乎记得为此对 type_traits 提出了一些建议。有没有人引用过这个提案,或者知道它是为 C++20 还是 C++23 添加的?

最佳答案

P1450调用此 copy_cvrefclone_cvref(前者只是将限定符应用于第二个参数,后者首先从第二个参数中删除限定符)。前者很有用,我认为我个人从来不需要后者。

P0847在一些上下文中使用 like_tforward_likelike_t 基本上是 P1450 的 copy_cvref(后者是...一个明显更好的名字)。 forward_likeP2445中单独提出(尽管没有其他类型特征助手)。

关于c++ - 在 C++ 中,是否有针对 "copying"引用类别和 cv 资格的拟议类型特征助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71404906/

相关文章:

c++ - 当您可以反编译时,独立软件开发商如何隐藏他们的目标代码?

c++ - 是否有符合标准的方法来确定非静态成员的对齐方式?

c++ - 访问方法的返回类型

c++ - 通过 lambda 中的显式 this 参数访问捕获的变量

c++ - 如何在 C++ 中按范围连接多个分隔符?

C++ 一次打印一个字串,统计字数,求字数的平均值

c++ - 帮助 C++ 中的 SNMP?

c++ - 如何在我的 qwidgets 项目中复制 .ui 文件?

c++ - 是否有可能在不依赖编译器内置函数的情况下实现 is_trivially_constructible 的库?

c++ - P0847 推断这一点 - 它可以允许通用克隆而不需要 CRTP 吗?