According to the C++ Standard (7.1.6.1 The cv-qualifiers)
1 There are two cv-qualifiers, const and volatile. Each cv-qualifier
shall appear at most once in a cvqualifier- seq. If a cv-qualifier
appears in a decl-specifier-seq, the init-declarator-list of the
declaration shall not be empty. [ Note: 3.9.3 and 8.3.5 describe how
cv-qualifiers affect object and function types. —end note ]
Redundant cv-qualifications are ignored. [ Note: For example, these could be introduced by typedefs.—end note ]
So this declaration
void doSomething(const int const &someVal);
has a redundant const qualifier that is simply ignored.
The second const qualifier would have a sense if someVal
would be declared as a reference to const pointer. For example
void doSomething(const int * const &someVal);