Наличие двух const
для типа вызывает предупреждение/ошибку. Однако, если тип был определен с помощью typedef
, компилятор принимает его (как Visual Studio 2013, так и онлайн-компилятор С++).
#include <iostream>
typedef const int value_type;
int main()
{
const value_type n = 0; //ok
const const int n2 = 0; //error C4114
return 0;
}
Есть ли у кого-нибудь идея, почему? Разве что он const (const int)
, который отличается от const const int
?