foo.cc: In function ‘void compute_row(int, int, std::vector<__int128>&, const std::vector<__int128>&)’:
foo.cc:36:5: error: ‘function’ was not declared in this scope
36 | function<void(int, int, int, int)> divide = [&](int l, int r, int optL, int optR) {
| ^~~~~~~~
foo.cc:5:1: note: ‘std::function’ is defined in header ‘<functional>’; this is probably fixable by adding ‘#include <functional>’
4 | #include <cstring>
+++ |+#include <functional>
5 | using namespace std;
foo.cc:36:37: error: expression list treated as compound expression in functional cast [-fpermissive]
36 | function<void(int, int, int, int)> divide = [&](int l, int r, int optL, int optR) {
| ^
foo.cc:36:14: error: expected primary-expression before ‘void’
36 | function<void(int, int, int, int)> divide = [&](int l, int r, int optL, int optR) {
| ^~~~