找回密码
 立即注册
首页 业界区 业界 记一次ADL导致的C++代码编译错误

记一次ADL导致的C++代码编译错误

静轾 2025-7-6 05:00:09
这篇文章主要讲讲c++的ADL,顺便说说为什么很多c++的IDE都会让你尽量不要include用不上的头文件。
和其他c++文章一样,这篇也会有基础回顾环节,所以不用担心看不懂,但读者最好还是得有c++的基础知识并且对c++11之后的内容有所了解。
好了,下面我们进入正题吧。
偶遇报错

最近工作收尾有了不少空闲时间,于是准备试试手头环境的编译器对新标准的支持,以便选择合适的时机给自己的几个项目做个升级。
虽然有现成的工具的网站可以查询编译器对新标准的支持情况,但这些网站给的信息还是不够详细,有时候得写些例子手动编译做测试。我是个懒人,所以我不愿意花时间自己写,而AI又对新标准理解的不够透彻,可能是语料太少的缘故,总是写出点离谱的东西。无奈之下我只能去网上找现成的吃了,cppreference是个不错的选择,用的人很多而且比较权威,更棒的是对于新特性它一般都给出了示例代码,这正中我的下怀。
于是我搬了这样一段代码进行测试,预想中要么编译成功要么新特性不支持导致编译失败:
[code]#include #include #include #include #include #include #include void print(auto const rem, auto const& range){    for (std::cout

相关推荐

您需要登录后才可以回帖 登录 | 立即注册