问题标签 [stdbind]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
511 浏览

c++ - 将成员函数绑定到 C++ 中的对象实例的函数

最近,我经常将成员函数绑定到对象实例。我不想使用 std::bind、std::mem_fn 和 std::ref 的组合,而是想将所有这些组合成一个函数来自动处理它们。

例如,考虑以下代码:

我的 obj_bind 函数实际上在没有参数的成员函数上运行良好,所以我很确定我的问题在于我如何处理这些,但在几次尝试修复它失败后,我想我会在这里尝试寻求建议。

0 投票
2 回答
353 浏览

c++ - 使用 std::bind 调用 std::string 方法

我需要使用 std::bind 调用 std::string 方法成员,我尝试了以下操作,但它给出了错误:

错误:

我想知道,如何使用绑定从 std::string 调用方法。

0 投票
1 回答
507 浏览

c++ - 如何为 std::bind 进行换行?

我正在构建一个简单的类来执行原子操作,但是当我尝试调用该方法时出现错误call

我尝试这样使用:

错误:

0 投票
3 回答
754 浏览

c++ - 使用 std::function 的回调替代方案

目前我正在尝试一个基本上执行以下操作的代码:

这工作得很好。但是我被这种模式卡住了。我想检查是否已经注册了回调,并且我希望能够通过从向量中删除回调来取消注册回调。我刚刚了解到std::function对象无法比较,这意味着无法在容器中搜索它们的存在。

所以我需要一个替代方案。当然,我想保留编译时类型检查和注册任意类方法的能力。

如何实现允许取消注册回调并检查双重注册的类似解决方案?我需要接受任何权衡吗?

0 投票
3 回答
657 浏览

c++ - Clang:在 string::c_str 和 transform 中使用 bind 或 mem_fn 时遇到问题

试图将 std::string 的向量转换为 const char* 的向量:

使用 g++ (4.7.2) 编译时,所有三个选项都可以正常编译和链接。使用 clang 编译时,选项 1 和 2 无法链接,产生:

我发现如果我希望它使用 g++ 和 clang 跨平台正确链接,我需要使用 lambda 版本(选项 3)。我是否遇到了链接器错误或 clang 的 C++11 支持中的漏洞,或者我调用 mem_fn() 和 bind() 版本的方式有问题?

编辑:

最新的 Xcode(6.3.2,clang 版本 6.1.0)上仍然存在错误:

0 投票
1 回答
545 浏览

c++ - 功能:术语不评估功能 1149 上的错误

我不明白这其中的错误。我正在尝试使用std::functions 将成员函数作为参数传递。除了第 4 种和最后一种情况外,它工作正常。

的前 3 次使用没有错误std::function,但是在最终使用中我得到以下信息:

Error 1 error C2064: term does not evaluate to a function taking 0 arguments在第 1149 行functional

我只知道错误发生在线上,因为我取出了所有其他错误,这是唯一一个导致各种组合出现任何问题的错误。

0 投票
0 回答
29 浏览

c++ - std::bind 作为另一个 std::bind 的参数和类型推断

请考虑以下代码片段:

为什么在最后(注释掉)行doubleFunc的调用中将第三个参数强制转换为必需?std::bind

这是 GCC 4.8 编译错误:

0 投票
1 回答
460 浏览

c++ - std::bind 导致非法间接错误

我正在阅读 SFML 游戏开发这本书,但我遇到了 std::bind 的问题。我搜索了一个解决方案,似乎其他人也遇到了类似的问题。但是,我仍然无法找到解决这个特定问题的方法。这是我的代码:

数据表.hpp

数据表.cpp

实体.hpp

实体.cpp

飞机.hpp

飞机.cpp

皮卡.hpp

皮卡.cpp

这是错误:

任何可能的解决方案将不胜感激。

0 投票
2 回答
889 浏览

c++ - 将占位符绑定的结果存储在 std::function 中

我一直在阅读,如何在常规函数上执行 std::bind。并将自由函数或成员函数存储到 std::function 中。但是,如果我尝试对一个参数使用占位符,而对另一个参数使用实际值;我无法调用 std::function(导致编译错误)

所以我尝试了以下代码:

我收到以下错误 g++ 4.7

0 投票
0 回答
47 浏览

c++ - 删除一个对象,然后通过 std::function 调用它的方法。有用!但为什么?

我运行此代码段来测试问题:

并得到输出:

谁能帮我解释一下为什么我们可以在删除对象后调用对象方法?