Из (4.4 / 1) читается
Значение r типа «указатель на cv1 T» может быть преобразовано в значение типа «указатель на cv2 T», если «cv2 T»более квалифицированным по cv, чем «cv1 T».
Я не знаю, где стандарт определяет тип «cv-qualifield», но, как я понял, декларатор с const более квалифицирован по cv, чемa non-const.
Для следующих преобразований как соотносится цитата из стандарта или как узнать, какой из них менее или более квалифицирован для cv?
int *const c1 = 0;
int const* c2 = 0;
const int *const c3 = 0;
c1 = c2; // allowed
c1 = c3; // allowed
Обновление:
c2 = c1;
c2 = c3;