【发布时间】:2017-02-22 18:07:29
【问题描述】:
此代码来自 C++ 入门 p.446:
return hash<string>() (sd.isbn());
我不明白带有两对括号的返回表达式。本书前面没有类似的语法。
【问题讨论】:
-
没有上下文很难说
-
取决于
hash<string>()返回的内容。如果它返回一个带有重写的调用运算符的类,那没什么特别的。 -
在 C++11 及更高版本中,您可以使用
std::hash<std::string>{}(即大括号而不是圆括号)来构建对象。它使区分对象构造和函数调用更容易。 -
Cpp 充满了那些难以理解的花絮,这很有趣。我非常尊重那些主要从事这门语言工作的人——你需要大量的技能和记忆才能成为一名优秀的 C++ 开发人员!
-
@ThalesPereira 大量的技能和内存对于成为一个好的 C++ 编译器也很有用