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