{}在函数调用中的参数之前意味着什么? key_equal {}(key1,key2);

时间:2017-05-27 20:32:46

标签: c++ typedef using

我一直在阅读实现哈希表的C ++代码。尽管以下代码的功能非常清楚,但我无法理解那里的emtpy花括号{}。我试着在网上查一下但找不到任何东西,很可能是因为这个表达的名字对我来说都是不知道的。

我认为它与std :: equal函数的typedef为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); }

1 个答案:

答案 0 :(得分:2)

key_equal{}使用braced-init-list语法实例化类型;然后该类型使用两个args实现operator(),并调用该运算符。