猿问

ADL的陷阱是什么?

前一段时间,我读了一篇文章,解释了参数依赖查找的几个陷阱,但是我再也找不到了。这是关于获得您不应该访问的东西或类似东西的权限。所以我想在这里问:ADL的陷阱是什么?



jeck猫
浏览 492回答 3
3回答

慕侠2389804

我想说这不是一个陷阱,而是一个功能:它允许您通过提供一种专门针对您的类型的实现来覆盖库行为。没有ADL,您将无法修改print的行为以适应您的unicorn类型。一个广泛使用的应用是swap:许多标准算法需要交换值;您可以提供自己的优化版本,swpa由于ADL而被选中。当然,最好在不需要时防止这种覆盖(最好不要强制使成员函数虚拟化)。
随时随地看视频慕课网APP
我要回答