/* Copyright 2016-2026 Joaquin M Lopez Munoz. * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) * * See http://www.boost.org/libs/poly_collection for library home page. */ #ifndef BOOST_POLY_COLLECTION_DETAIL_IS_INVOCABLE_HPP #define BOOST_POLY_COLLECTION_DETAIL_IS_INVOCABLE_HPP #if defined(_MSC_VER) #pragma once #endif #include #if __cpp_lib_is_invocable>=201703L namespace boost{ namespace poly_collection{ namespace detail{ template using is_invocable=std::is_invocable; template using is_invocable_r=std::is_invocable_r; } /* namespace poly_collection::detail */ } /* namespace poly_collection */ } /* namespace boost */ #else #include namespace boost{ namespace poly_collection{ namespace detail{ template struct is_invocable: std::is_constructible< std::function, std::reference_wrapper::type> > {}; template struct is_invocable_r: std::is_constructible< std::function, std::reference_wrapper::type> > {}; } /* namespace poly_collection::detail */ } /* namespace poly_collection */ } /* namespace boost */ #endif #endif