library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub matumoto1234/library

:warning: tools/fix-point.hpp

Depends on

Code

#pragma once

#include "./base.hpp"

#include <utility>

namespace matumoto {
  template <typename F>
  struct FixPoint: F {
    FixPoint(F &&f) noexcept: F{ forward<F>(f) } {}

    template <typename... Args>
    decltype(auto) operator()(Args &&...args) const {
      return F::operator()(*this, forward<Args>(args)...);
    }
  };

  template <typename F>
  inline decltype(auto) make_fix_point(F &&f) {
    return FixPoint<F>{ forward<F>(f) };
  }
} // namespace matumoto
#line 2 "tools/fix-point.hpp"

#line 2 "tools/base.hpp"

namespace matumoto {
  using namespace std;
}
#line 4 "tools/fix-point.hpp"

#include <utility>

namespace matumoto {
  template <typename F>
  struct FixPoint: F {
    FixPoint(F &&f) noexcept: F{ forward<F>(f) } {}

    template <typename... Args>
    decltype(auto) operator()(Args &&...args) const {
      return F::operator()(*this, forward<Args>(args)...);
    }
  };

  template <typename F>
  inline decltype(auto) make_fix_point(F &&f) {
    return FixPoint<F>{ forward<F>(f) };
  }
} // namespace matumoto
Back to top page