General Purpose library for Freestanding C++ and POSIX systems
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

24 satır
474 B

4 yıl önce
  1. #pragma once
  2. #include "gp_config.hpp"
  3. #include "gp/algorithms/move.hpp"
  4. #include "gp/functional/identity.hpp"
  5. namespace gp{
  6. template<typename it, typename transform>
  7. auto&& min_of(it beg, it end, transform fn = identity) {
  8. gp_config::assertion(beg != end, "min_of provided with empty range");
  9. auto fn_v = fn(*beg);
  10. ++beg;
  11. while(beg != end) {
  12. auto n_fn_v = fn(*beg);
  13. if(n_fn_v < fn_v) {
  14. fn_v = n_fn_v;
  15. }
  16. ++beg;
  17. }
  18. return gp::move(fn_v);
  19. }
  20. }