类型也可用using起别名, 写法和上面一致, 视觉上比typedef清晰一些
decltype
类似auto, 能对对象进行静态推导, 然后将类型转为一个可用的类型名应用出来, 主要用在返回值, TMP...auto Foo(T1 x, T2 y)->decltype(x+y)
{dosomething;}
TMP: 在模板元编程中, decltype主要用来自动推导参数的类型, 从而利用这个类型进行其它的变量使用...尽管这里都是左值, 但是它们的声明类型依然是正确的, 我们想到可以利用转型来恢复它的引用属性
为了适配模板, 我们可以写出如下的模板函数. pass传入ref的参数只有int&和int&&两种类型, 且都是左值...&&的话, T将会是int&&类型, 然后由于引用折叠的原因, arg此时是int&& &也就是int&型, 然后经过static_cast变为int&& &&也就是int&&返回, 成功变为了一个右值引用的返回值...for的简写, 因此要记住其中内含了elem=*iter的操作, 所以需要隐式转换的支持
auto是自动静态类型推导, 发生在编译期.