c++中的declval和decltype

add_rvalue_reference:是C++标准库中的类模板,它的能力是给进来一个类型,他能够返回该类型的右值引用类型。
比如: a)给进来一个int类型,返回的就是int && 
b)给进来一个int &类型,返回的还是int &类型。这里用到了引用折叠。 
c)给进来一个int &&类型,返回的还是int &&类型。这里依旧用到了引用折叠知识。 

std::declval的功能:
返回某个类型T的右值引用,不管该类型是否有默认构造函数或者该类型是否可以创建对象。 
返回某个类型T的右值引用 这个动作是在编译时完成的,所以很多人把std::declval也称为编译时工具。

 

posted @ 2023-04-21 00:05  情三  阅读(53)  评论(0编辑  收藏  举报