Suppose we have a std::vector<T> v and T is a class with a member function U T::f() const, where U is convertible to double. I want to create a std::discrete_distribution<> d(/* v[0].f(), ..., v[v.size() - 1].f() */). Is this possible without creating a new container containing the values v[0].f(), ..., v[v.size() - 1].f()?