template <typename T>
auto f = [](const T& x){return x*x;};
名付けて「テンプレートラムダ」

template using ... と似ててよくね?
ここまでやって本当の関数型言語と呼べるだよ(笑)。