CV-квалификаторы должны размещаться справа от типа, который является typedef или using name
Классификаторы CV должны располагаться справа от типа, который является typedef или using name.
Предположим, что 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 заявления.
Средство проверки помечает как типы данных указателей, так и типы данных без указателей.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Выражения |
| Категория: Обязательно, Автоматизировано |