#include <vector>
#include <complex>
template <class T>
void apply(const std::vector<std::complex<T> >& in, std::vector<T>& out,
T (*f)(std::complex<T> const&))
{
out.resize(in.size());
for(size_t i = 0; i < in.size(); ++i)
out[i] = f(in[i]);
}
int main(){
std::vector<std::complex<float> > vcomp;
std::vector<float> vf;
apply(vcomp, vf, &std::abs<float>);
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGNvbXBsZXg+Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4Kdm9pZCBhcHBseShjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OmNvbXBsZXg8VD4gPiYgaW4sIHN0ZDo6dmVjdG9yPFQ+JiBvdXQsCiAgICAgICAgICAgVCAoKmYpKHN0ZDo6Y29tcGxleDxUPiBjb25zdCYpKQp7CiAgICBvdXQucmVzaXplKGluLnNpemUoKSk7CiAgICBmb3Ioc2l6ZV90IGkgPSAwOyBpIDwgaW4uc2l6ZSgpOyArK2kpCiAgICAgIG91dFtpXSA9IGYoaW5baV0pOwp9CgppbnQgbWFpbigpewogIHN0ZDo6dmVjdG9yPHN0ZDo6Y29tcGxleDxmbG9hdD4gPiB2Y29tcDsKICBzdGQ6OnZlY3RvcjxmbG9hdD4gdmY7CiAgYXBwbHkodmNvbXAsIHZmLCAmc3RkOjphYnM8ZmxvYXQ+KTsKfQo=