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

c – 如何检查引用是否为const?,第1张

概述我正在为我的迭代器类型编写测试,并希望检查由begin()和cbegin()提供的解引用迭代器返回的引用分别是非const和const. 我尝试做类似以下的事情: – #include <type_traits>#include <iostream>#include <vector>int main() { std::vector<int> vec{0}; std::co 我正在为我的迭代器类型编写测试,并希望检查由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.

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

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

解决方法 删除引用以获取引用的类型以检查其常量.引用本身永远不会是const – 即使引用const也可以通俗地称为const引用:

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

以上是内存溢出为你收集整理的c – 如何检查引用是否为const?全部内容,希望文章能够帮你解决c – 如何检查引用是否为const?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1218673.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存