Спецификаторы CV должны быть помещены на правой стороне типа, который является определением типа или именем использования
Спецификаторы CV должны быть помещены на правой стороне типа, который является определением типа или именем использования.
Предположим typedef или using оператор задает тип указателя. Например:
using IntPtr = std::int32_t*;
const- проверка типа, записанного как:const IntPtr ptr = &someValue;
const (std::int32_t*) ptr = &someValue;
ptr постоянный указатель, который не может быть повторно присвоен другой ячейке памяти. Однако разработчик или рецензент могут ожидать это расширение:(const std::intr32_t) *ptr = &someValue;
ptr указатель на константу, что означает что содержимое местоположения что ptr точки к, или *ptr, не может быть изменен.Чтобы избежать этого беспорядка, поместите const или volatile спецификатор справа от типа данных задан через typedef или using. Например:
IntPtr const ptr = &someValue;
std::intr32_t const *ptr = &someValue;
ptr постоянный указатель.Средство проверки отмечает ситуации где const или volatile спецификаторы помещаются на левой стороне типов данных, заданных через typedef или using операторы.
Средство проверки отмечает и указатель и неуказательные типы данных.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
| Группа: Выражения |
| Категория: необходимый, автоматизированный |