#include <iostream>

auto func1(int a, int b) {
    struct {
        const double& a;
        const double& b;
    } p = {a, b};

    return [&p](int x){ return p.a*x + p.b; };

}

int main() {

    auto f = func1(10, 20);

    int c = 9;
    int d = 8;

    std::cout << f(c);
    return 0;
}