C++ 特别认可的函数(名称)列表。 (例如运算符++,开始)

List of (names of) functions that are specially recognized by C++. (e.g. operator++,begin)

刚学了一点C++,发现了一些特殊的函数。

示例 1

bool operator<(const B& b1,const B& b2)
bool B::operator<(const B& b2) const
//recognized by std::sort

示例 2

MyIterator C::begin();
MyIterator begin(C& c);
//recognized by range-based loop

据我所知,这些函数在 C++ 中特别
(此外,在每一对中,它们以某种方式以相同的方式被识别。)

问题

被识别为特殊的所有函数的列表是什么?
换句话说,C++(官方)规范中是否有任何部分总结了它们的列表+它们有多特别?

我相信如果我在没有这些知识的情况下盲目编码,我可能会犯一些愚蠢的错误,尤其是在与 std:: class.

交互时

抱歉,主题名称不太合理,但我想不出更好的名称。

IMO,以下在 C++ 中被特殊处理:

  • main(),其中有超过 1 个有效 syntax
  • 构造函数和析构函数
  • 某些特殊关键字,用作类似函数:4 次强制转换 (static, dynamic, const, reinterpret) 和 typeid
  • begin() & end() 方法或函数在处理基于范围的 for 循环时被特殊对待
  • 各种超载 运营商
  • 转换运算符,例如struct A { operator int (); };

可能缺少一些项目。不确定,如果一切都列在标准的某处,几乎不可能。

但是,您担心弄乱 namespace std 是错误的。它确实包含一些标准功能,但除非你不这样做 using namespace std,否则不用担心会搞砸。