Мне нравится использовать следующую форму для объявления «явных констант» . В этом случае само значение является константой, поэтому я ставлю сначала «const» ( то же самое, что и у Бьярне ), чтобы подчеркнуть, что константность должна проявляться во время компиляции и использоваться как таковая для конкретных оптимизаций с помощью компилятор.
const int i = 123;
Для объявления ссылок, которые не будут использоваться для изменения значения, я использую следующую форму, которая подчеркивает тот факт, что идентификатор является «постоянной ссылкой». Указанное значение может быть или не быть константой. [Связанное обсуждение: Вы бы даже использовали «const» для параметров функции, если бы они не были указателями или ссылками? Использование «const» для параметров функции ]
void fn( int const & i );
Для указателей я использую ту же форму, что и для ссылок, по сути по той же причине (хотя термин «постоянный указатель») "кажется немного более двусмысленным, чем" постоянная ссылка ").
void fn( int const * i );
Кроме того, как заметил другой автор, эта форма остается последовательной, когда у вас есть несколько уровней косвенности.
void fn( int const * const * i );
Последний сценарий, где вы объявляете указатель, который является постоянным, довольно редко встречается в моем опыте с C ++. В любом случае, у вас действительно нет выбора здесь. [Этот случай демонстрирует, что наиболее последовательным подходом было бы поставить слово «const» после типа - поскольку для этого конкретного объявления фактически требуется .]
void fn( int * const i );
... если вы не используете typedef.
typedef int * IntPtr;
void fn1( const IntPtr i );
void fn2( IntPtr const i );
И последнее замечание: если вы не работаете в домене низкого уровня, большая часть кода C ++ не должна никогда не объявлять указатель . Следовательно, этот аспект этого обсуждения, вероятно, больше относится к C.
mUnit делает свое дело: http://www.mathworks.com/matlabcentral/fileexchange/11306-munit-a-unit-testing-framework-in-matlab
I Пользуюсь им> 2 года. Мне пришлось сделать некоторые изменения, такие как печать гиперссылок в командном окне matlab вместо простого текста (чтобы быстро перейти туда, где произошла ошибка). Тем не менее, это достаточно хорошо.