/*============================================================================= Copyright (c) 2011-2019 Bolero MURAKAMI https://github.com/bolero-MURAKAMI/Sprout 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 SPROUT_CONTAINER_HAS_SPROUT_BEGIN_HPP #define SPROUT_CONTAINER_HAS_SPROUT_BEGIN_HPP #include #include #include #include #include namespace sprout { // // has_sprout_begin // namespace detail { template struct has_sprout_begin_test { public: template< typename U = T, typename = typename sprout::identity()))>::type > static sprout::true_type test(int); static sprout::false_type test(...); }; #if defined(_MSC_VER) && (_MSC_VER > 1900) template::test(0))>::type> struct has_sprout_begin : public Base_ {}; #else template struct has_sprout_begin : public sprout::identity::test(0))>::type {}; #endif } // namespace detail template struct has_sprout_begin : public sprout::detail::has_sprout_begin {}; #if SPROUT_USE_VARIABLE_TEMPLATES template SPROUT_STATIC_CONSTEXPR bool has_sprout_begin_v = sprout::has_sprout_begin::value; #endif // #if SPROUT_USE_VARIABLE_TEMPLATES } // namespace sprout #endif // #ifndef SPROUT_CONTAINER_HAS_SPROUT_BEGIN_HPP