给定下面的代码,如何确认v[0]的类型是const int&,并遍历头文件?
#include <vector>
int main()
{
const std::vector<int> v(1);
decltype(v[0]) b = 1;
}举个例子,这就是我在VS2010中试图做的:
vector上使用鼠标,我用鼠标右键单击,并选择了Go to definition并找到了
template >类向量: public _Vector_val<_Ty,_Ax> {}operator[]并找到了const_reference operator[](size_type _Pos) constconst-reference上单击鼠标右键,选择Go to definition并找到typedef typename _Alloc::const_reference const_reference;。我不知道从现在开始该往哪里走。
发布于 2013-05-27 00:52:29
您真的不应该使用实现来获取这样的信息。打字机的链子可以很长。相反,请参考反映标准中信息的语言标准或cppreference.com。在std::vector的情况下,const_reference被定义为引用value_type类型的常量,它是T类型(或MS实现的_Ty )。
*.Prior to C++11它被声明为对Allocator::reference类型常量的引用
发布于 2013-05-28 20:08:40
使用特征和static_assert。std::is_same可以直接告诉您它是否是const &或者不是。对于其他情况,您可以使用is_reference或其他查询。static_assert是由intellisense计算的,因此您甚至可以在不编译的情况下获得结果。
https://stackoverflow.com/questions/16764909
复制相似问题