Краткое объяснение того, как const и constexpr работают с указателями в C ++

Итак, я проверял правильность своих знаний при работе над ошибкой Firefox.
Я быстро сделал файл на C ++ со всеми известными мне примерами использования const и constexpr для указателей.
Как можно видеть , это довольно запутанно!

Поскольку в операторе есть несколько мест, где вы можете поставить 'const', может быть сложно определить, на какую часть вашего оператора ссылается 'const'.
Как правило, лучше читать справа налево. проработай это. то есть:

static const char * const hello;

Читал бы как:

hello (is a) const pointer (to) const char

Но для этого нужно немного практики.

С ++ constexpr также привносит новое измерение в проблему!
Он ведет себя как const в том смысле, что делает все указатели константными указателями.
Но потому что это происходит в начале вашего оператора (а не после ' * ') это не сразу очевидно.

Вот мой список всех способов использования const и constexpr для указателей и их поведения.