这篇文章主要讲讲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 |