State logger for optimization problems
You could use a better name for the template argument float_t, maybe value_t 

Maybe you could combine both log functions as they are very similar:

template &lt;typename Container, typename InputIt&gt;
void log(Container &amp;c, InputIt begin, InputIt end, std::true_type) {
    c.emplace_back(begin, end);
  }