gpt4 book ai didi

c++ - 在 std::bind 上使用 std::apply

转载 作者:搜寻专家 更新时间:2023-10-31 01:27:49 25 4
gpt4 key购买 nike

以下无法使用 gcc 8.2.0 编译 [ stacktrace ]

#include <iostream>
#include <tuple>
#include <functional>

void print(int a, int b, int c) {
std::cout << a << ", " << b << ", " << c << std::endl;
}

int main() {
auto b = std::bind(print, 1);
auto t = std::make_tuple(2, 3);

std::apply(b, t);
}

我个人不明白为什么,它的工作似乎是常识(至少在适当的函数式语言中)。

有人可以解释它不起作用的原因吗?

最佳答案

对于 std::bind,您还需要为未绑定(bind)的参数提供占位符。

auto b = std::bind(print, 1, std::placeholders::_1, std::placeholders::_2);

关于c++ - 在 std::bind 上使用 std::apply,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52731883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com