- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
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/
代码应该解释我的困难。虽然代码本身没什么意义,但我打算在 MyClass 中添加容器,并使用带有成员函数的算法。 #include #include #include using namespa
使用 VS2005 在 Windows 上工作并努力理解我收到的错误消息。如果之前有人问过这个问题,我很抱歉。我找不到它。 我正在测试的类: #include using std::unary_fu
我有一个看起来像这样的类。 class A { public: void doSomething(); } 我有一组这些类。我想对数组中的每个项目调用 doSomething() 。使用算法
我遇到了类模板 std::unary_function 和 std::binary_function。 template struct unary_function { typedef Ar
我只是在为一组仿函数寻找一个方便的基类,这些仿函数基于获取和 int 并返回 void。 考虑使用 std/functional 仿函数基本上是 unary_function与 operator()
这个问题在这里已经有了答案: Where and why do I have to put the "template" and "typename" keywords? (8 个答案) 关闭 9
我阅读了有关二元和一元函数的教程。我了解它们的结构,但我无法想象在哪种情况下我需要这些功能。你能举个例子来说明它们的用法吗? http://www.cplusplus.com/reference/st
这是导致我出现一些问题的代码,尝试构建并获取错误: 'unary_function base class undefined' and 'unary_function' is not a member
当如下检查从 std::unary_function 派生的仿函数时 struct IsInterestingMsg : public std::unary_function Lint 弹出以下信息/
我有一个继承自 unary_function 的仿函数类: template class Matcher : public std::unary_function { private: int
这是我的代码: using namespace std; class Pixel { public: bool AreSamplesIdentical() const {
我发现 binary_function 已从 C++11 中删除。我想知道为什么。 C++98: template struct less : binary_function { bool o
std::unary_function特性在 c++11 中被弃用并在 c++17 中被删除。但是使用 c++17 编译器标志,这段代码仍然可以编译: struct less_than_7 : std
binder2nd 派生自 unary_function。 以下代码片段不起作用: greater g; //greater is derived from binary_function /
我是一名优秀的程序员,十分优秀!