mirror of
https://github.com/mat007/turtle.git
synced 2026-06-22 12:13:43 +00:00
Include definition for void_t to avoid dependency on Boost 1.64+
This commit is contained in:
parent
823fd994ff
commit
d9a10afc12
3 changed files with 31 additions and 4 deletions
|
|
@ -13,8 +13,8 @@
|
|||
#include "constraint.hpp"
|
||||
#include "detail/move_helper.hpp"
|
||||
#include "unwrap_reference.hpp"
|
||||
#include "detail/void_t.hpp"
|
||||
#include <boost/version.hpp>
|
||||
#include <boost/type_traits/make_void.hpp>
|
||||
#if BOOST_VERSION >= 107000
|
||||
#include <boost/test/tools/floating_point_comparison.hpp>
|
||||
#else
|
||||
|
|
@ -118,7 +118,7 @@ namespace detail
|
|||
{};
|
||||
|
||||
template<class T, class U>
|
||||
struct has_equal_to<T, U, boost::void_t<decltype(std::declval<T>() == std::declval<U>())>>: std::true_type
|
||||
struct has_equal_to<T, U, void_t<decltype(std::declval<T>() == std::declval<U>())>>: std::true_type
|
||||
{};
|
||||
|
||||
template< typename Expected >
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
#define MOCK_IS_FUNCTOR_HPP_INCLUDED
|
||||
|
||||
#include "../config.hpp"
|
||||
#include <boost/type_traits/make_void.hpp>
|
||||
#include "void_t.hpp"
|
||||
#include <type_traits>
|
||||
|
||||
namespace mock
|
||||
|
|
@ -22,7 +22,7 @@ namespace detail
|
|||
struct is_functor : std::false_type
|
||||
{};
|
||||
template< typename F, typename Arg >
|
||||
struct is_functor< F, Arg, boost::void_t<decltype( std::declval<F>()( std::declval<Arg>() ) )> >: std::true_type
|
||||
struct is_functor< F, Arg, void_t<decltype( std::declval<F>()( std::declval<Arg>() ) )> >: std::true_type
|
||||
{};
|
||||
}
|
||||
} // mock
|
||||
|
|
|
|||
27
include/turtle/detail/void_t.hpp
Normal file
27
include/turtle/detail/void_t.hpp
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
// http://turtle.sourceforge.net
|
||||
//
|
||||
// Copyright Alexander Grund 2020
|
||||
//
|
||||
// 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)
|
||||
|
||||
#ifndef MOCK_VOID_T_HPP_INCLUDED
|
||||
#define MOCK_VOID_T_HPP_INCLUDED
|
||||
|
||||
namespace mock
|
||||
{
|
||||
namespace detail
|
||||
{
|
||||
template<typename...>
|
||||
struct make_void
|
||||
{
|
||||
using type = void;
|
||||
};
|
||||
/// Standard helper to implement the detection idiom. Returns always void
|
||||
template<typename... Ts>
|
||||
using void_t = typename make_void<Ts...>::type;
|
||||
}
|
||||
} // mock
|
||||
|
||||
#endif // MOCK_VOID_T_HPP_INCLUDED
|
||||
Loading…
Add table
Add a link
Reference in a new issue