mirror of
https://github.com/bolero-MURAKAMI/Sprout
synced 2025-08-03 12:49:50 +00:00
support for VC++2015
This commit is contained in:
parent
f2c09dd3af
commit
b9440c0e9c
33 changed files with 353 additions and 253 deletions
|
@ -13,6 +13,7 @@
|
|||
#include <sprout/config.hpp>
|
||||
#include <sprout/utility/forward.hpp>
|
||||
#include <sprout/functional/base.hpp>
|
||||
#include <sprout/type_traits/identity.hpp>
|
||||
|
||||
namespace sprout {
|
||||
// 20.8.10 member function adaptors
|
||||
|
@ -200,13 +201,13 @@ namespace sprout {
|
|||
template<typename T>
|
||||
static two check_const(T&, Class const*);
|
||||
template<typename T>
|
||||
static two check_const(T&, const volatile void*);
|
||||
static two check_const(T&, void const volatile*);
|
||||
public:
|
||||
template<typename T>
|
||||
struct result_type
|
||||
: public sprout::detail::mem_fn_const_or_non<
|
||||
Res,
|
||||
(sizeof(two) == sizeof(check_const<T>(get_ref<T>(), (T*)0)))
|
||||
(sizeof(two) == sizeof(check_const<T>(get_ref<T>(), sprout::identity<T*>::type())))
|
||||
>
|
||||
{};
|
||||
template<typename Signature>
|
||||
|
|
|
@ -41,41 +41,49 @@ namespace sprout {
|
|||
public:
|
||||
typedef R result_type;
|
||||
};
|
||||
#if !defined(_MSC_VER)
|
||||
template<typename R, typename... Args>
|
||||
struct weak_result_type_impl<R (Args......)> {
|
||||
public:
|
||||
typedef R result_type;
|
||||
};
|
||||
#endif
|
||||
template<typename R, typename... Args>
|
||||
struct weak_result_type_impl<R (&)(Args...)> {
|
||||
public:
|
||||
typedef R result_type;
|
||||
};
|
||||
#if !defined(_MSC_VER)
|
||||
template<typename R, typename... Args>
|
||||
struct weak_result_type_impl<R (&)(Args......)> {
|
||||
public:
|
||||
typedef R result_type;
|
||||
};
|
||||
#endif
|
||||
template<typename R, typename... Args>
|
||||
struct weak_result_type_impl<R (*)(Args...)> {
|
||||
public:
|
||||
typedef R result_type;
|
||||
};
|
||||
#if !defined(_MSC_VER)
|
||||
template<typename R, typename... Args>
|
||||
struct weak_result_type_impl<R (*)(Args......)> {
|
||||
public:
|
||||
typedef R result_type;
|
||||
};
|
||||
#endif
|
||||
template<typename R, typename Class, typename... Args>
|
||||
struct weak_result_type_impl<R (Class::*)(Args...)> {
|
||||
public:
|
||||
typedef R result_type;
|
||||
};
|
||||
#if !defined(_MSC_VER)
|
||||
template<typename R, typename Class, typename... Args>
|
||||
struct weak_result_type_impl<R (Class::*)(Args......)> {
|
||||
public:
|
||||
typedef R result_type;
|
||||
};
|
||||
#endif
|
||||
#if SPROUT_CLANG_OR_LATER(3, 6, 0)
|
||||
# pragma clang diagnostic pop
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue