此代码来自 C ++ primer p.446:
private IReport DoSomething(Func<IInstructionSheetFactory, IReport> x)
{
return x(_factory);
}
我不理解带有两对括号的返回表达式。在本书前面没有类似的语法。
答案 0 :(得分:50)
std::hash
是一种类型。你在这里做的是用std::hash
构建一个临时hash<string>()
,然后(sd.isbn())
调用临时传递sd.isbn()
的{{3}}。
与
相同std::hash<std::string> temp;
return temp(sd.isbn());
有关使用operator()
的对象的更多信息,请参阅:operator()