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

@ -23,7 +23,11 @@ namespace sprout {
// tuple_element
//
namespace detail {
#if defined(_MSC_VER)
template<std::size_t I, typename T, bool = true>
#else
template<std::size_t I, typename T, bool = sprout::has_value<std::tuple_size<T> >::value>
#endif
struct valid_tuple_index;
template<std::size_t I, typename T>
struct valid_tuple_index<I, T, false>
@ -34,7 +38,11 @@ namespace sprout {
: public sprout::bool_constant<(I < std::tuple_size<T>::value)>
{};
#if defined(_MSC_VER)
template<std::size_t I, typename T, bool = true>
#else
template<std::size_t I, typename T, bool = sprout::has_type<std::tuple_element<I, T> >::value && sprout::tuples::detail::valid_tuple_index<I, T>::value>
#endif
struct tuple_element_default;
template<std::size_t I, typename T>
struct tuple_element_default<I, T, false>

View file

@ -21,7 +21,11 @@ namespace sprout {
// tuple_size
//
namespace detail {
#if defined(_MSC_VER)
template<typename T, bool = true>
#else
template<typename T, bool = sprout::has_value<std::tuple_size<T> >::value>
#endif
struct tuple_size_default;
template<typename T>
struct tuple_size_default<T, false>