remove_reference是一个模板元函数,用于去除类型的引用限定符。它返回一个新的类型,该新类型不包含原始类型的引用限定符。如果原始类型不是引用类型,则返回原始类型本身。
例如,对于类型T,remove_reference::type将返回T的非引用版本。假设有以下代码:
#include <iostream>
#include <type_traits>
int main() {
int x = 10;
int& y = x;
std::cout << std::is_same<int, std::remove_reference<int&>::type>::value << std::endl; // 1
std::cout << std::is_same<int, std::remove_reference<decltype(y)>::type>::value << std::endl; // 1
return 0;
}
输出结果将是1和1,因为remove_reference模板元函数成功去除了int&类型和y的引用限定符,返回了int类型。