Perhaps it'll be easier to understand with this example
std::cout << std::is_const<int const *>::value << "
"; // pointer to const int
std::cout << std::is_const<int * const>::value << "
"; // const pointer to int
Output:
false
true
The first type is a pointer to a const int
, while in the second the int *
itself is const
. Hence it results in true
while the former is false
. Similarly, what you have a reference to a const int
. If int& const
were valid it'd result in true
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…