gpt4 book ai didi

c++ - 为什么 std::is_const::value 评估为 false?

转载 作者:可可西里 更新时间:2023-11-01 18:20:07 25 4
gpt4 key购买 nike

这是问题 How to check if object is const or not? 的衍生问题.

看到下面的程序我很惊讶

#include <iostream>
#include <type_traits>

int main()
{
std::cout << std::boolalpha;
std::cout << std::is_const<const int&>::value << "\n";
}

产生了这个输出

false

在什么情况下可以将 const int& 视为非常量类型?

最佳答案

也许通过这个例子会更容易理解

std::cout << std::is_const<int const *>::value << "\n";  // pointer to const int
std::cout << std::is_const<int * const>::value << "\n"; // const pointer to int

输出:

false
true

第一种类型是指向 const int 的指针,而在第二种类型中,int * 本身是 const。因此它的结果是 true 而前者是 false。同样,您对 const int 的引用。如果 int& const 有效,则结果为 true

关于c++ - 为什么 std::is_const<const int&>::value 评估为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24029723/

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