TITLE: position of const keyword (Newsgroups: comp.lang.c++.moderated, 7 Mar 97) FRASER: James Fraser > what is int const * p ? SZONYE: "Bradd W. Szonye" T const * p; is equivalent syntactically and semantically to const T * p; I prefer the former notation because it leads to a consistent rule: const modifies the type or declaration immediately to its left. For example: int const * p; // pointer to integer constant int * const p; // pointer constant pointing to integer int const * const p; // pointer constant pointing to integer constant int p() const; // member function with constant semantics I switched to 'T const*' when writing templates as preprocessor macros on a compiler with no builtin template support. Making the declarations syntactically consistent is extremely important when using a stupid text-based macro facility (like cpp).