Posiadanie dwóch const
dla typu powoduje wyświetlenie ostrzeżenia/błędu. Jeśli jednak typ został zdefiniowany za pomocą typedef
, kompilator akceptuje go (zarówno Visual Studio 2013, jak i kompilator C++ w trybie online).Ten sam kwalifikator typu const
#include <iostream>
typedef const int value_type;
int main()
{
const value_type n = 0; //ok
const const int n2 = 0; //error C4114
return 0;
}
Czy ktoś ma pomysł, dlaczego? Czy to jest const (const int)
, który różni się od const const int
?
Ten kod jest OK, jakie jest dokładnie twoje pytanie? –