Следующее не может быть скомпилировано с 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);
}
Лично я не понимаю, почему, похоже, что это работает здравый смысл (впо крайней мере, правильный функциональный язык).
Может кто-нибудь объяснить причину, по которой он не работает?