c++ - 模板类型的引用是什么意思?

标签 c++ templates types std

在我尝试理解的代码中,我看到这样的结构:ref<date>(entry) 。请任何人解释一下它的含义。

我假设我们创建了对 entry 的引用对象但如何date使用类型。例如ref<date>(entry)ref<location>(entry)将返回不同的值。它是如何工作的?

最佳答案

如果您有using namespace std;并包括 <functional> header ,这是指 std::ref 功能。

std::ref是一个将创建 std::reference_wrapper 的函数包装您传递的对象。整点std::ref是你不必给出模板参数,因为它可以被推导。因此,如果您想要引用 entry ,那么你应该这样做:

std::ref(entry)

这是一个方便的功能,可以让您在创建 std::reference_wrapper 时不必键入多余的类型名称。 。如果您手动执行此操作,则必须执行以下操作:

std::reference_wrapper<date>(entry)

那是因为std::reference_wrapper是模板类,不能通过这种方式推导模板类参数。

关于c++ - 模板类型的引用是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15545318/

相关文章:

django - 遍历自定义模板标签传递的列表

Go类型定义操作 "inheritance"?

sql - 为 varchar 或 varbinary 选择较大 MAX 值的缺点

c++ - 如何创建返回类型为 1) true/false 和 2) 动态数据的对象

c++ - 如何在另一个 C++ 程序中使用预处理的 .i 文件?

c++ - 运算符 != 不匹配(操作数类型为指针和对象)

c++ - 使用 operator[] 和 operator int() 的模糊重载

c++ - ...使用时没有模板参数错误

c++ - 声明嵌套类模板的静态对象

c++ - 将 vector<char> buf(256) 转换为 LPCSTR?