24得票2回答
我可以帮您翻译成中文:在std::function模板签名类型参数中,我可以使用命名参数吗?

我可以在std::function(或其他类似结构)中合法地使用名称作为模板参数吗?例如,考虑以下代码:std::function<int(int, int)> some_func; 我能否以以下方式重新表达它?std::function<int(int begin, int...

22得票4回答
如何定义一个带有默认参数的std::function变量?

要将std::function变量设置为具有默认参数的lambda函数,可以使用auto: auto foo = [](int x = 10){cout << x << endl;}; foo(); 这将会打印出10。 但是我希望foo变量驻留在一个结构体中。在...

22得票2回答
Fast Delegate(等)背后的思想已被用于优化std :: function吗?

曾经有提议过C++“委托”(delegates)作为boost::function的低开销替代方案: 成员函数指针和最快速的C++委托 快速C++委托 不可思议快速的C++委托 这些想法中是否有被用于实现std::function,其性能是否比boost::function更好?是否有...

22得票9回答
具有不同签名的std :: function向量

我有若干个具有不同函数签名的回调函数。理想情况下,我希望将它们放入一个向量中,并根据某些条件调用适当的函数。 例如:void func1(const std::string& value); void func2(const std::string& value, int ...

20得票3回答
使用 `std::function<void(...)>` 调用非 void 函数

不久之前,我基本上是这样使用 std::function 的:std::function&lt;void(int)&gt; func = [](int i) -&gt; int { return i; }; 基本上,我这样做是因为我想在一个 std::function 中存储不同的函数对象,但...

20得票2回答
C++中类似于std::function的模板语法

在 C++11 中,您可以像这样实例化 std::function:std::function&lt;void(int)&gt; f1; std::function&lt;int(std::string, std::string)&gt; f2; //and so on 虽然网络上有关于可变参...

20得票7回答
绑定到weak_ptr

有没有一种方法可以将 std::bind 绑定到 std::weak_ptr?我想存储一个“弱函数”回调,当被调用者被销毁时自动“断开连接”。 我知道如何使用 shared_ptr 创建 std::function:std::function&lt;void()&gt; MyClass::G...

20得票2回答
当从一个有按值捕获的 Lambda 函数移动构造一个 std::function 时,移动构造函数会被调用两次。

当使用lambda进行值捕获,并且通过移动构造函数创建std::function对象时,似乎被值捕获的对象的移动构造函数会被调用两次。例如: #include &lt;functional&gt; #include &lt;iostream&gt; struct Foo { int ...

19得票4回答
C++模板中使用函数类型参数的语法

我习惯于看到像这样的函数指针语法。 int (*pointer_name) (float, char *); void call_function (void (*)(int), int); 我看到一些 C++03 的函数库中使用了这种类型: abc::function&lt;void...

19得票4回答
如何正确声明以函数类型作为参数的模板(例如std::function)

我发现像这样拥有整洁的语法并不是容易的: std::function&lt;int(float, bool)&gt; 如果我声明函数如下: template &lt;class RetType, class... Args&gt; class function {}; 定义函数的模...