gpt4 book ai didi

c++ - std::decay 并删除 const 限定符

转载 作者:行者123 更新时间:2023-12-02 09:53:31 26 4
gpt4 key购买 nike

我试图更好地理解 std::decay 的工作原理。根据 cppreference ,它应该从类型中删除 const 和 volatile 分类,作为它所做的其他转换的一部分。然而,下面的函数显示“False”、“True”与“True”、“True”,正如人们所期望的那样。有人可以澄清为什么在与此处的腐烂类型匹配时需要 const 吗?

int main()
{
const char *p = "testing";
cout << "------------------" << endl;
cout << boolalpha << is_same<char *, decay_t<decltype(p)>>::value << endl;
cout << boolalpha << is_same<const char *, decay_t<decltype(p)>>::value << endl;
cout << "------------------" << endl;
}

最佳答案

std::decay_t 将从指针中删除 const(如果它是 const),而不是它所指向的类型。

也就是说,char* const 会衰减为 char*

关于c++ - std::decay 并删除 const 限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62251151/

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