Tengo el siguiente código:
template<class Callable, class ...Args> void f(Callable t, Args &&... args) { auto lambda = [t, args...](){ t(args...); }; } int main() { int x = 8; using callable_t = decltype(std::greater{}); f(std::greater{}, x, 10); }Si entiendo correctamente (corríjame si me equivoco), el compilador genera la siguiente función:
void f(callable_t t, int& x, int&& y);Todo lo que quiero lograr es asegurarme de que en la lista de captura lambda, x se capture por referencia e y se capture por valor. ¿Cómo puedo conseguir esto?