对于 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_cvref
和 clone_cvref
(前者只是将限定符应用于第二个参数,后者首先从第二个参数中删除限定符)。前者很有用,我认为我个人从来不需要后者。
P0847在一些上下文中使用 like_t
和 forward_like
,like_t
基本上是 P1450 的 copy_cvref
(后者是...一个明显更好的名字)。 forward_like
在P2445中单独提出(尽管没有其他类型特征助手)。
关于c++ - 在 C++ 中,是否有针对 "copying"引用类别和 cv 资格的拟议类型特征助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71404906/