我的参考是二元谓词Compare comp
预计在超载std::下界 https://en.cppreference.com/w/cpp/algorithm/lower_bound etc.:
描述如下:
谓词函数的签名应该等于
下列的:
bool pred(const Type1 &a, const Type2 &b);
虽然签名不需要有 const &,但函数必须
不修改传递给它的对象并且必须能够接受所有
Type1 和 Type2 类型的值(可能是 const),无论值如何
类别(因此,Type1 & 是不允许的,Type1 也不允许,除非对于 Type1
移动相当于复制 (C++11 起))。
我对以下部分的描述感到有点困惑(这似乎是矛盾的?):
...该函数不得修改传递给它的对象,并且必须
能够接受 Type1 和 Type2 类型(可能是 const)的所有值
无论值类别如何(因此,不允许使用 Type1 &,也不允许使用 Type1 &)
Type1,除非对于 Type1,移动相当于复制 (C++11 起))
如果函数应该接受所有值类别,为什么是Type1
不允许?另外,为什么应该move
相当于copy
for Type1
从 C++11 开始允许吗?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)