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