#include <iostream>
#include <random>
class Sampler{
private:
std::mt19937 gen_;
public:
Sampler();
double sample();
};
Sampler::Sampler() : gen_(std::random_device{}()) {}
class Foo{
private:
Sampler s_;
public:
Foo(Sampler);
};
Foo::Foo(Sampler s) : s_(s) {} // Does work
int main()
{
Sampler s;
Foo f(s);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmFuZG9tPgoKY2xhc3MgU2FtcGxlcnsgICAgCnByaXZhdGU6CiAgICBzdGQ6Om10MTk5MzcgZ2VuXzsKCnB1YmxpYzoKICAgIFNhbXBsZXIoKTsKICAgIGRvdWJsZSBzYW1wbGUoKTsKfTsKClNhbXBsZXI6OlNhbXBsZXIoKSA6IGdlbl8oc3RkOjpyYW5kb21fZGV2aWNle30oKSkge30KCmNsYXNzIEZvb3sKcHJpdmF0ZToKICAgIFNhbXBsZXIgc187CgpwdWJsaWM6CiAgICBGb28oU2FtcGxlcik7Cn07CgpGb286OkZvbyhTYW1wbGVyIHMpIDogc18ocykge30gLy8gRG9lcyB3b3JrCgppbnQgbWFpbigpIAp7CglTYW1wbGVyIHM7CglGb28gZihzKTsKfQ==