cpx*_*cpx 3 c++ const qualifiers implicit-conversion
从(4.4/1)开始
如果"cv2 T"比"cv1 T"更符合cv,则可以将类型"指向cv1 T的指针"的rvalue转换为"指向cv2 T的指针"的rvalue.
我不知道标准定义'更多cv-qualifield'类型的位置,但据我所知,const的声明符比非const更符合cv.
对于以下转换,标准的引用如何适用或如何知道哪一个更少或更多cv-qualifed?
int *const c1 = 0;
int const* c2 = 0;
const int *const c3 = 0;
c1 = c2; // allowed
c1 = c3; // allowed
Run Code Online (Sandbox Code Playgroud)
更新:
c2 = c1;
c2 = c3;
Run Code Online (Sandbox Code Playgroud)
3.9.3/4中的表6给出了cv限定符的部分排序,3.9.3/4也给出了更多cv限定的定义.
constvolatileconst volatileconst < const volatilevolatile < const volatile