为何C++98编译时std::adjacent_difference未被识别?
问题解释:C++98编译时std::adjacent_difference找不到的原因
在C++98标准中,std::adjacent_difference是定义在<numeric>头文件中的,并不属于<algorithm>。
你查阅的文档显示它归属于<algorithm>,是因为后续的C标准(从C17开始)调整了标准库的头文件布局,<algorithm>会自动引入std::adjacent_difference的声明,但这个特性在C++98里不存在。
当你用c++ -std=c++98 main.cpp编译时,编译器严格遵循C++98标准,仅包含<algorithm>的情况下无法找到该函数的定义,因此会抛出‘adjacent_difference’ is not a member of ‘std’的错误。
内容的提问来源于stack exchange,提问作者a k
相关产品推荐
相关产品推荐

