std::remove_reference
Defined in header <type_traits> | | |
---|---|---|
template< class T > struct remove_reference; | | (since C++11) |
如果类型T
是一个引用类型,提供成员类型type
所引用的类型。T
.否则type
是T
...
成员类型
Name | Definition |
---|---|
type | the type referred by T or T if it is not a reference |
帮助者类型
template< class T > using remove_reference_t = typename remove_reference<T>::type; | | (since C++14) |
---|
可能的实施
模板<class T>结构删除[医]引用{tydufT类型;};模板<class T>结构删除[医]引用<T&>{tyHuif T类型;};模板<class T>结构删除[医]参考<T&>{tydufT类型;};
*。
例
二次
#include <iostream> // std::cout
#include <type_traits> // std::is_same
template<class T1, class T2>
void print_is_same() {
std::cout << std::is_same<T1, T2>() << '\n';
}
int main() {
std::cout << std::boolalpha;
print_is_same<int, int>(); // true
print_is_same<int, int &>(); // false
print_is_same<int, int &&>(); // false
print_is_same<int, std::remove_reference<int>::type>(); // true
print_is_same<int, std::remove_reference<int &>::type>(); // true
print_is_same<int, std::remove_reference<int &&>::type>(); // true
}
二次
产出:
二次
true
false
false
true
true
true
二次
另见
is_reference (C++11) | checks if a type is either lvalue reference or rvalue reference (class template) |
---|---|
add_lvalue_referenceadd_rvalue_reference (C++11)(C++11) | adds lvalue or rvalue reference to the given type (class template) |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com