gpt4 book ai didi

c++ - 如何检查引用是否为 const?

转载 作者:太空狗 更新时间:2023-10-29 19:47:37 26 4
gpt4 key购买 nike

我正在为我的迭代器类型编写测试,并想检查由 begin()cbegin() 提供的取消引用迭代器返回的引用是否非-const 和 const 分别。

我尝试做类似以下的事情:-

#include <type_traits>
#include <iostream>
#include <vector>

int main() {
std::vector<int> vec{0};

std::cout << std::is_const<decltype(*vec.begin())>::value << std::endl;
std::cout << std::is_const<decltype(*vec.cbegin())>::value << std::endl;
}

但这两种情况都会打印 0

有没有办法检查引用是否为常量?

我可以使用 C++11/14/17 功能。

最佳答案

删除引用以获取引用类型以检查其常量性。引用本身永远不是 const - 即使对 const 的引用通俗地称为 const 引用:

std::is_const_v<std::remove_reference_t<decltype(*it)>>

关于c++ - 如何检查引用是否为 const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53444574/

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