1
0
Fork 0
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:
bolero-MURAKAMI 2015-12-09 19:54:35 +09:00
parent f2c09dd3af
commit b9440c0e9c
33 changed files with 353 additions and 253 deletions

View file

@ -37,7 +37,7 @@ namespace sprout {
static sprout::true_type test(int);
static sprout::false_type test(...);
};
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER > 1900)
template<typename T, typename Base_ = typename sprout::identity<decltype(sprout::detail::has_mem_size_test<T>::test(0))>::type>
struct has_mem_size
: public Base_
@ -84,7 +84,7 @@ namespace sprout {
static sprout::true_type test(int);
static sprout::false_type test(...);
};
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER > 1900)
template<typename T, typename Base_ = typename sprout::identity<decltype(sprout::detail::has_mem_empty_test<T>::test(0))>::type>
struct has_mem_empty
: public Base_
@ -131,7 +131,7 @@ namespace sprout {
static sprout::true_type test(int);
static sprout::false_type test(...);
};
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER > 1900)
template<typename T, typename Base_ = typename sprout::identity<decltype(sprout::detail::has_mem_front_test<T>::test(0))>::type>
struct has_mem_front
: public Base_
@ -203,7 +203,7 @@ namespace sprout {
static sprout::true_type test(int);
static sprout::false_type test(...);
};
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER > 1900)
template<typename T, typename Base_ = typename sprout::identity<decltype(sprout::detail::has_mem_back_test<T>::test(0))>::type>
struct has_mem_back
: public Base_
@ -275,7 +275,7 @@ namespace sprout {
static sprout::true_type test(int);
static sprout::false_type test(...);
};
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER > 1900)
template<typename T, typename Base_ = typename sprout::identity<decltype(sprout::detail::has_mem_at_test<T>::test(0))>::type>
struct has_mem_at
: public Base_
@ -347,7 +347,7 @@ namespace sprout {
static sprout::true_type test(int);
static sprout::false_type test(...);
};
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER > 1900)
template<typename T, typename Base_ = typename sprout::identity<decltype(sprout::detail::has_mem_nth_test<T>::test(0))>::type>
struct has_mem_nth
: public Base_
@ -419,7 +419,7 @@ namespace sprout {
static sprout::true_type test(int);
static sprout::false_type test(...);
};
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER > 1900)
template<typename T, typename Base_ = typename sprout::identity<decltype(sprout::detail::has_mem_index_of_test<T>::test(0))>::type>
struct has_mem_index_of
: public Base_

View file

@ -17,7 +17,12 @@ namespace sprout {
namespace containers {
namespace detail {
template<typename Container, typename Prev, typename = void>
struct deep_internal_impl
struct deep_internal_impl;
template<typename Container, typename Prev>
struct deep_internal_impl<
Container, Prev,
typename std::enable_if<!std::is_same<Container, Prev&&>::value>::type
>
: public sprout::containers::detail::deep_internal_impl<
typename sprout::containers::internal<Container>::type, Container
>

View file

@ -32,7 +32,7 @@ namespace sprout {
static sprout::true_type test(int);
static sprout::false_type test(...);
};
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER > 1900)
template<typename T, typename Base_ = typename sprout::identity<decltype(sprout::detail::has_mem_shrink_to_fit_test<T>::test(0))>::type>
struct has_mem_shrink_to_fit
: public Base_

View file

@ -24,7 +24,7 @@ namespace sprout {
sprout::true_type sprout_has_xxx_impl_check_template_rebind_size(int);
template<typename T>
sprout::false_type sprout_has_xxx_impl_check_template_rebind_size(long);
#if defined(_MSC_VER)
#if defined(_MSC_VER) && (_MSC_VER > 1900)
template<typename T, typename Base_ = decltype(sprout::containers::detail::sprout_has_xxx_impl_check_template_rebind_size<T>(0))>
struct has_rebind_size
: public Base_