在我尝试理解的代码中,我看到这样的结构: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/