函数调用中参数前的 {} 是什么意思? key_equal{}(key1, key2);
What does { } mean before the arguments in a function call ? key_equal{}(key1, key2);
我一直在阅读实现哈希的 C++ 代码 table。尽管以下代码的作用非常清楚,但我无法理解空大括号 {} 在那里的作用。我试图在网上查找但找不到任何东西,很可能是因为我什至不知道这个表达式的名称。
我认为这与 std::equal 函数被定义为 key_equal 这一事实有关,但正如我所说,我找不到任何与之相关的东西。
这是家庭作业的一部分,是我不认识的人写的,所以理解功能比讨论这样做的必要性更重要,尽管我会对此发表评论。
提前致谢!
using key_equal = std::equal_to<key_type>;
bool equals(const key_type& key1, const key_type& key2) const {
return key_equal{}(key1, key2); }
key_equal{}
使用 braced-init-list 语法实例化类型;然后该类型使用两个参数实现 operator()
,并调用该运算符。
我一直在阅读实现哈希的 C++ 代码 table。尽管以下代码的作用非常清楚,但我无法理解空大括号 {} 在那里的作用。我试图在网上查找但找不到任何东西,很可能是因为我什至不知道这个表达式的名称。
我认为这与 std::equal 函数被定义为 key_equal 这一事实有关,但正如我所说,我找不到任何与之相关的东西。
这是家庭作业的一部分,是我不认识的人写的,所以理解功能比讨论这样做的必要性更重要,尽管我会对此发表评论。
提前致谢!
using key_equal = std::equal_to<key_type>;
bool equals(const key_type& key1, const key_type& key2) const {
return key_equal{}(key1, key2); }
key_equal{}
使用 braced-init-list 语法实例化类型;然后该类型使用两个参数实现 operator()
,并调用该运算符。