#include <algorithm>
#include <array>
#include <vector>
template <typename T, int VAL>
T addValue(T const& x)
{
return x + VAL;
}
int main(int argc, char* argv[])
{
std::array<float, 3> array = {0.1f, 0.2f, 0.3f};
std::vector<float> source(array.begin(), array.end());
std::vector<float> dest(3);
std::transform(source.begin(), source.end(), dest.begin(), (float(*)(float const&))addValue<float, 4>);
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGFycmF5PgojaW5jbHVkZSA8dmVjdG9yPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIGludCBWQUw+ClQgYWRkVmFsdWUoVCBjb25zdCYgeCkKewogICAgcmV0dXJuIHggKyBWQUw7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCnsKCXN0ZDo6YXJyYXk8ZmxvYXQsIDM+IGFycmF5ID0gezAuMWYsIDAuMmYsIDAuM2Z9OwoJc3RkOjp2ZWN0b3I8ZmxvYXQ+IHNvdXJjZShhcnJheS5iZWdpbigpLCBhcnJheS5lbmQoKSk7CglzdGQ6OnZlY3RvcjxmbG9hdD4gZGVzdCgzKTsKCglzdGQ6OnRyYW5zZm9ybShzb3VyY2UuYmVnaW4oKSwgc291cmNlLmVuZCgpLCBkZXN0LmJlZ2luKCksIChmbG9hdCgqKShmbG9hdCBjb25zdCYpKWFkZFZhbHVlPGZsb2F0LCA0Pik7CgoJcmV0dXJuIDA7Cn0=