Это спина от вопроса How to check if object is const or not?.Почему std :: is_const <const int&> :: значение оценивается как false?
Я был удивлен увидеть следующую программу
#include <iostream>
#include <type_traits>
int main()
{
std::cout << std::boolalpha;
std::cout << std::is_const<const int&>::value << "\n";
}
произвел этот выход
false
В каком контексте это имеет смысл думать о const int&
как неконстантного типа?
'is_const' определяется как «T является const-квалифицированным». Ссылки не могут быть cv-квалифицированными, поэтому это имеет смысл с точки зрения языка. –
Mat
См. Также http://stackoverflow.com/questions/6217453/why-does-boostis-sameint-const-boostadd-constint-value-equal-false?rq=1 – MSalters
@Mat, не могли бы вы перевести свой комментарий на ответ? Это, кажется, содержит лучший ответ. –