forked from boostorg/fusion
- Construct from elements is enabled iff each argument is_convertible to corresponding element. - Construct from sequence is enabled iff the single argument is a fusion sequence. - C++11 vector and tuple also disable construct from sequence that are shorter than the destination. C++03 gives incorrect is_convertible responses in this situation and fails to compile if that constructor is used; C++11 can have instantation errors in and_<is_convertible<U, T>...> without the additional check. - C++11 tuple and vector support truncation conversion and assignment like all other sequences.
39 lines
1.4 KiB
C++
39 lines
1.4 KiB
C++
/*=============================================================================
|
|
Copyright (c) 2014-2015 Kohei Takahashi
|
|
|
|
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 FUSION_VECTOR_CONFIG_11052014_1720
|
|
#define FUSION_VECTOR_CONFIG_11052014_1720
|
|
|
|
#include <boost/config.hpp>
|
|
#include <boost/detail/workaround.hpp>
|
|
#include <boost/fusion/support/config.hpp>
|
|
|
|
#if (defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) \
|
|
|| defined(BOOST_NO_CXX11_RVALUE_REFERENCES) \
|
|
|| defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) \
|
|
|| defined(BOOST_NO_CXX11_DECLTYPE)) \
|
|
|| defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) \
|
|
|| defined(BOOST_FUSION_DISABLE_VARIADIC_VECTOR) \
|
|
|| (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES))
|
|
# if defined(BOOST_FUSION_HAS_VARIADIC_VECTOR)
|
|
# undef BOOST_FUSION_HAS_VARIADIC_VECTOR
|
|
# endif
|
|
#else
|
|
# if !defined(BOOST_FUSION_HAS_VARIADIC_VECTOR)
|
|
# define BOOST_FUSION_HAS_VARIADIC_VECTOR
|
|
# endif
|
|
#endif
|
|
|
|
// Sometimes, MSVC 12 shows compile error with std::size_t of template parameter.
|
|
#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1800))
|
|
# if defined(BOOST_FUSION_HAS_VARIADIC_VECTOR)
|
|
# undef BOOST_FUSION_HAS_VARIADIC_VECTOR
|
|
# endif
|
|
#endif
|
|
|
|
#endif
|
|
|