从OIer到ACMer-cpp重新学习
auto&decltype
auto name=value
自动补全 name 的类型。
decltype(value2) name=value1
将 value2 的类型赋予 name
小尝试:
| 1 | 
 | 
代码报错,可见赋值结果是 const int
但是auto把一个变量赋值为一个常量的值是可以的
| 1 | 
 | 
不过两个 const 加起来 decltype 就报错失败了。
| 1 | 
 | 
此时又变成 int 。
补充一下参数输出结果:
| 类型 | typeid输出 | 
|---|---|
| bool: | b | 
| char: | c | 
| signed char: | a | 
| unsigned char: | h | 
| (signed) short (int): | s | 
| unsigned short (int): | t | 
| (signed) (int): | i | 
| unsigned (int): | j | 
| (signed) long (int): | l | 
| unsigned long (int): | m | 
| (signed) long long (int): | x | 
| unsigned long long (int): | y | 
| float: | f | 
| double: | d | 
| long double: | e | 
还有 is_lvalue_reference<x> 可以判断一个表达式是否为左值引用。is_same<x,y> 判断两者是否为一个类型。
std::function和lambda表达式
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.





