https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97938

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |jason at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |jason at gcc dot gnu.org

--- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> ---
Removed library dependency:

template <class F, class... Args>
auto apply(F&& f, Args&&... args) { return f(args...); }

template <class T> T&& forward(T&& t);

template <typename... Args>
int print_args(Args&&... args) {
  return sizeof...(args);
}

template <typename T1, typename T2>
auto fwd(const T1& t1, const T2& t2) {
  return ::apply([&t2] (auto&&... ts1) {
    return ::apply([...ts1 = forward<decltype(ts1)>(ts1)] (auto&&... ts2) {
      return print_args(ts1..., forward<decltype(ts2)>(ts2)...);
    }, t2);
  }, t1);
}

int main() {
  auto t1 = 1;
  auto t2 = 2;
  return fwd(t1, t2);
}

Reply via email to