gpt4 book ai didi

c++ - 首先是 std::remove_reference 还是 std::remove_cv?

转载 作者:IT老高 更新时间:2023-10-28 22:27:00 26 4
gpt4 key购买 nike

如果我想提取 const 引用的类型(如 const double& 中的 double),我必须使用:

typename std::remove_cv<typename std::remove_reference<Type>::type>::type

typename std::remove_reference<typename std::remove_cv<Type>::type>::type

?

最佳答案

首先使用remove_referenceremove_cv 仅删除顶级限定符,在引用的情况下,没有任何(或被忽略)。

显示差异的示例:

#include <iostream>
#include <type_traits>

template<typename T>
using Remove_cv_ref = std::remove_cv<typename std::remove_reference<T>::type>;

template<typename T>
using Remove_ref_cv = std::remove_reference<typename std::remove_cv<T>::type>;

int main()
{
std::cout << std::is_same<typename Remove_cv_ref<const int&>::type, int>::value; // 1
std::cout << std::is_same<typename Remove_ref_cv<const int&>::type, int>::value; // 0
}

Live demo.

关于c++ - 首先是 std::remove_reference 还是 std::remove_cv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17295169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com