N3485的第14.6.4.2节规定了以下关于候选候选函数查找:
如果调用结果不正确或者找到更好的匹配,那么相关命名空间中的查找会考虑在所有翻译单元中的那些名称空间中引入外部链接的所有函数声明,而不仅仅是考虑模板定义和模板中的那些声明实例化上下文,然后程序有未定义的行为.
对于一个"形成错误"的呼叫到底意味着什么,以及如何通过查找选择一个不正确的呼叫?另外,如果考虑所有翻译单元,为什么会找到更好的匹配呢?
c++ templates language-lawyer c++11
c++ ×1
c++11 ×1
language-lawyer ×1
templates ×1