gpt4 book ai didi

c++ - 为什么 `std::unary_function` 仍然在 c++17 中编译?

转载 作者:太空狗 更新时间:2023-10-29 20:08:53 24 4
gpt4 key购买 nike

std::unary_function特性在 c++11 中被弃用并在 c++17 中被删除。但是使用 c++17 编译器标志,这段代码仍然可以编译:

struct less_than_7 : std::unary_function<int, bool>
{
bool operator()(int i) const { return i < 7; }
};

内置g++ -std=c++17 -O0 -Wall -pedantic main.cpp here.

功能删除对于编译器来说是可选的吗?

最佳答案

由于它不再是 C++17 标准的一部分,因此将其包含在您的一个源代码文件中与将内容引入 std 的代码属于同一类别。

换句话说,程序行为未定义

程序运行是这种未定义行为的表现。也许您的实现定义了未定义的行为。但即便如此,您的代码也不是可移植的 C++17。

关于c++ - 为什么 `std::unary_function` 仍然在 c++17 中编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51720617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com