about summary refs log tree commit diff
path: root/third_party/immer/extra/guile/scm/detail/invoke.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/immer/extra/guile/scm/detail/invoke.hpp')
-rw-r--r--third_party/immer/extra/guile/scm/detail/invoke.hpp39
1 files changed, 0 insertions, 39 deletions
diff --git a/third_party/immer/extra/guile/scm/detail/invoke.hpp b/third_party/immer/extra/guile/scm/detail/invoke.hpp
deleted file mode 100644
index d9f2b37cce..0000000000
--- a/third_party/immer/extra/guile/scm/detail/invoke.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-//
-// immer: immutable data structures for C++
-// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente
-//
-// This software is distributed under the Boost Software License, Version 1.0.
-// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt
-//
-
-#pragma once
-
-// Adapted from the official std::invoke proposal:
-// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4169.html
-
-#include <type_traits>
-#include <functional>
-
-namespace scm {
-namespace detail {
-
-template <typename Functor, typename... Args>
-std::enable_if_t<
-    std::is_member_pointer<std::decay_t<Functor>>::value,
-    std::result_of_t<Functor&&(Args&&...)>>
-invoke(Functor&& f, Args&&... args)
-{
-    return std::mem_fn(f)(std::forward<Args>(args)...);
-}
-
-template <typename Functor, typename... Args>
-std::enable_if_t<
-    !std::is_member_pointer<std::decay_t<Functor>>::value,
-    std::result_of_t<Functor&&(Args&&...)>>
-invoke(Functor&& f, Args&&... args)
-{
-    return std::forward<Functor>(f)(std::forward<Args>(args)...);
-}
-
-} // namespace detail
-} // namespace scm