c++ - constint - ¿Cuál es el equivalente de std:: is_const para referencias a const?
constantes en c++ ejemplos (1)
Use remove_reference :
#include <string>
#include <iostream>
#include <type_traits>
using namespace std;
int main()
{
int const x = 50;
int const& y = x;
cout << std::is_const<std::remove_reference<decltype(x)>::type>::value << endl; // 1
cout << std::is_const<std::remove_reference<decltype(y)>::type>::value << endl; // 1
return 0;
}
Considera el código:
int const x = 50;
int const& y = x;
cout << std::is_const<decltype(x)>::value << endl; // 1
cout << std::is_const<decltype(y)>::value << endl; // 0
Esto tiene sentido, porque y
no es una referencia const
, es una referencia a una const
.
¿Hay un foo
tal que std::foo<decltype(y)>::value
sea 1? Si no, ¿qué aspecto tendría definir el mío?