Ejercicio 2.33 2.34
d es ilegal: d es un apuntador entero
e es ilegal: e es un apuntador a una constante entera
g es ilegal: g es una referencia constante entera
Ejercicio 2.35
i: constante entera
j: entero
k: referencia de constante entera
p: puntero entero
j2: constante entera
k2: referencia de constante entera
Ejercicio 2.36
#include<iostream>
int main()
{
int a = 3, b = 4;
decltype(a) c = a;
decltype((b)) d = a;
++c;
++d;
}
a: int, 4
b: int, 4
c: int, 4
d: referencia, 4
Ejercicio 2.37
#include<iostream>
int main()
{
int a = 3, b = 4;
decltype(a) c = a;
decltype(a = b) d = a;
}
a: int, 3
b: int, 4
c: int, 3
d: referencia 3
Ejercicio 2.38
#include<iostream>
int main()
{
const int i = 5;
auto a = i;//a为int,忽略顶层const
const auto a2 = i;//a2为const int
decltype(i) b = 5;//b为对常量的引用
}
La forma en que decltype maneja la constante de nivel superior y las referencias es diferente de auto. El tipo de la variable o expresión devuelta incluye la constante de nivel superior y la referencia
decltype. El tipo de resultado está relacionado con la forma de expresión y el tipo obtenido al agregar paréntesis es una referencia