c – 如何检查引用是否为const?
发布时间:2020-12-16 10:15:02 所属栏目:百科 来源:网络整理
导读:我正在为我的迭代器类型编写测试,并希望检查由begin()和cbegin()提供的解引用迭代器返回的引用分别是非const和const. 我尝试做类似以下的事情: – #include type_traits#include iostream#include vectorint main() { std::vectorint vec{0}; std::cout std
我正在为我的迭代器类型编写测试,并希望检查由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)>> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |