Сравнить общие функции интеграции:
template <class F> double integrate(F integrand);
с
template <class F> double integrate(F& integrand);
или
template <class F> double integrate(const F& integrand);
Каковы плюсы и минусы каждого? STL использует первый подход (передается по значению), означает ли он наиболее универсальный?