问题标签 [boost-ref]

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 投票
2 回答
1528 浏览

c++ - boost::ref 和 boost::asio 完成处理程序,按引用传递

我在一段代码中有这个调用,底层类型i绝对是可调用的(因为删除 boost::ref 会导致按值传递,这很好用),但是 clang 告诉我:

我如何通过引用传递,我有比异步调用更长寿的对象,如果我可以通过引用传递它们,它们会更优雅(更少 boost::shared_ptr<..> 的成员)。

- 编辑 -

我已经浏览了 asio 的示例目录,并且boost::ref没有针对完成处理程序进行演示。所以我想我在这里不走运。处理程序没有接受 ref 的版本是否有原因?

-- 编辑 2:我看起来像什么(除非您对实现持怀疑态度,否则不要费心看这个)。--

0 投票
1 回答
236 浏览

c++ - 传递参数时如何将 boost::ref 与 Boost.Parameter 库一起使用?

我使用 Boost.Parameter 库为构造函数提供命名参数。

通常windowFunction会被boost::function对象复制,但是我也希望能够通过引用传递boost::ref.

但是,当我传递一个删除了的函数对象并且 ArgumentPack 包含对该值的引用boost::ref时。reference_wrapper<T>T

问题:有没有办法防止reference_wrapper<T>包装被移除?

例子:

将在构造函数中SomeFunctionObject& s传递给而不是。这样一来,就会被哪个抄袭,这是不可取的。mWindowFunClassAImplconst reference_wrapper<SomeFunctionObject>&sboost::function

0 投票
2 回答
962 浏览

c++ - boost::ref 没有发生匹配的调用错误,但 std::ref 没有发生匹配的调用错误

我编写了一些代码,这些代码使用仿函数和来自或(对于 C++11)命名空间的模板来计算向量ref元素的数量bind。我正在使用 a在和命名空间之间切换。我使用的是 boost 1.53 版本,我的编译命令是. 我已经尝试使用 gcc 版本 4.7.2 和 4.6.3,但我都得到了相同的错误。boost::std::#defineboost::std::g++ test.cpp -std=c++11

我有3个问题:

  1. 我不明白为示例 2 生成的错误。
  2. 是否可以仅通过切换命名空间来使这样的代码具有可移植性?
  3. 是否有一个很好的参考资料详细描述std和的boost版本bind之间ref的差异function?(我看到了这个问题,但答案没有提到reffunction

谢谢!

size()PS这个例子只是说明了我的问题,我知道std::vector:-)

0 投票
2 回答
7886 浏览

c++ - 使用 boost::ref 传递对接受值的函数的引用

我对 boost::ref 的使用感到困惑。我不明白为什么有人会想做以下事情 -

将 ref 传递给函数有什么用。我总是可以按值传递。也不是实际上通过了 ref。在上面的 main 中 aaa 的值仅保持为 2。

boost ref 到底在哪里有用?

在这种情况下是否可以使用 boost::ref 。我想将迭代器引用传递给 std::sort 函数。通常排序适用于迭代器副本- boost::ref 是否也适用于引用?(对 std::sort 没有任何更改)

0 投票
2 回答
3453 浏览

c++ - why is this program using boost::ref

The Ref library is a small library that is useful for passing references to function templates (algorithms) that would usually take copies of their arguments.

from http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/example/chat/chat_server.cpp

in call deliver -

if the

in another class is taking message by reference then why is boost::ref used at all?

0 投票
1 回答
124 浏览

c++ - 在 C++ 中的 boost 包装器中删除一个对象

我有一个有元素的类 std::list<boost::reference_wrapper<polygonType> > m_children;

当一个对象从这个类中创建出来时,我将该对象的所有子对象作为引用存储在这个变量中。我想做的是,当调用对象的析构函数时,我希望调用孩子的析构函数。

  1. 在这种情况下,这是一种自动行为吗?还是我需要为它写点东西,给这个列表有参考?
  2. 如果我希望它们不被删除,我需要做什么?如果我想删除它们,我需要做什么?

这基本上归结为我做出的一些设计决策以及我希望如何修复它们。

0 投票
1 回答
104 浏览

python - 为什么不能使用 std::ref 将对象传递给 Boost.Python 模块?

环境:使用 Python 3.5 编译的 Boost 1.61.0

以下 C++ 代码输出12

但是,如果我替换boost::refstd::ref,则会抛出一个boost::python::error_already_set实例。

为什么不能std::ref在这里使用?