问题标签 [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.
c++ - 将成员函数绑定到 C++ 中的对象实例的函数
最近,我经常将成员函数绑定到对象实例。我不想使用 std::bind、std::mem_fn 和 std::ref 的组合,而是想将所有这些组合成一个函数来自动处理它们。
例如,考虑以下代码:
我的 obj_bind 函数实际上在没有参数的成员函数上运行良好,所以我很确定我的问题在于我如何处理这些,但在几次尝试修复它失败后,我想我会在这里尝试寻求建议。
c++ - 使用 std::bind 调用 std::string 方法
我需要使用 std::bind 调用 std::string 方法成员,我尝试了以下操作,但它给出了错误:
错误:
我想知道,如何使用绑定从 std::string 调用方法。
c++ - 如何为 std::bind 进行换行?
我正在构建一个简单的类来执行原子操作,但是当我尝试调用该方法时出现错误call
我尝试这样使用:
错误:
c++ - 使用 std::function 的回调替代方案
目前我正在尝试一个基本上执行以下操作的代码:
这工作得很好。但是我被这种模式卡住了。我想检查是否已经注册了回调,并且我希望能够通过从向量中删除回调来取消注册回调。我刚刚了解到std::function
对象无法比较,这意味着无法在容器中搜索它们的存在。
所以我需要一个替代方案。当然,我想保留编译时类型检查和注册任意类方法的能力。
如何实现允许取消注册回调并检查双重注册的类似解决方案?我需要接受任何权衡吗?
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)上仍然存在错误:
c++ - 功能:术语不评估功能 1149 上的错误
我不明白这其中的错误。我正在尝试使用std::function
s 将成员函数作为参数传递。除了第 4 种和最后一种情况外,它工作正常。
的前 3 次使用没有错误std::function
,但是在最终使用中我得到以下信息:
Error 1 error C2064: term does not evaluate to a function taking 0 arguments
在第 1149 行functional
。
我只知道错误发生在线上,因为我取出了所有其他错误,这是唯一一个导致各种组合出现任何问题的错误。
c++ - std::bind 作为另一个 std::bind 的参数和类型推断
请考虑以下代码片段:
为什么在最后(注释掉)行doubleFunc
的调用中将第三个参数强制转换为必需?std::bind
这是 GCC 4.8 编译错误:
c++ - std::bind 导致非法间接错误
我正在阅读 SFML 游戏开发这本书,但我遇到了 std::bind 的问题。我搜索了一个解决方案,似乎其他人也遇到了类似的问题。但是,我仍然无法找到解决这个特定问题的方法。这是我的代码:
数据表.hpp
数据表.cpp
实体.hpp
实体.cpp
飞机.hpp
飞机.cpp
皮卡.hpp
皮卡.cpp
这是错误:
任何可能的解决方案将不胜感激。
c++ - 将占位符绑定的结果存储在 std::function 中
我一直在阅读,如何在常规函数上执行 std::bind。并将自由函数或成员函数存储到 std::function 中。但是,如果我尝试对一个参数使用占位符,而对另一个参数使用实际值;我无法调用 std::function(导致编译错误)
所以我尝试了以下代码:
我收到以下错误 g++ 4.7
c++ - 删除一个对象,然后通过 std::function 调用它的方法。有用!但为什么?
我运行此代码段来测试问题:
并得到输出:
谁能帮我解释一下为什么我们可以在删除对象后调用对象方法?