1 --- boost/multi_array/base.hpp
2 +++ boost/multi_array/base.hpp
4 // MSVC 2010 is broken in debug mode: it requires
5 // that an Output Iterator have output_iterator_tag in its iterator_category if
6 // that iterator is not bidirectional_iterator or random_access_iterator.
7 -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
8 +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600) || defined __clang__
9 struct mutable_iterator_tag
10 : boost::random_access_traversal_tag, std::input_iterator_tag
16 -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
17 +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600) || defined __clang__
18 // Deal with VC 2010 output_iterator_tag requirement
19 typedef array_iterator<T,T*,mpl::size_t<NumDims>,reference,
20 mutable_iterator_tag> iterator;
22 # clang-cl cannot use MSVC's ATOMIC_FLAG_INIT:
23 --- boost/smart_ptr/detail/spinlock.hpp
24 +++ boost/smart_ptr/detail/spinlock.hpp
26 #elif defined( BOOST_SP_USE_PTHREADS )
27 # include <boost/smart_ptr/detail/spinlock_pt.hpp>
29 -#elif !defined( BOOST_NO_CXX11_HDR_ATOMIC )
30 +#elif !defined( BOOST_NO_CXX11_HDR_ATOMIC ) && !(defined __clang__ && defined _MSC_VER && _MSC_VER == 1916)
31 # include <boost/smart_ptr/detail/spinlock_std_atomic.hpp>
33 #elif defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ )
35 # workdir/UnpackedTarball/boost/libs/thread/src/win32/thread.cpp(1006,36) : error: dllimport cannot be applied to non-inline function definition
36 # BOOST_THREAD_DECL void __cdecl on_process_enter()
38 --- boost/thread/detail/config.hpp
39 +++ boost/thread/detail/config.hpp
42 # if defined(BOOST_THREAD_PLATFORM_WIN32)
43 # if defined(BOOST_MSVC) || defined(BOOST_INTEL_WIN) \
44 - || defined(__MINGW32__) || defined(MINGW32) || defined(BOOST_MINGW32)
45 + || defined(__MINGW32__) || defined(MINGW32) || defined(BOOST_MINGW32) || defined __clang__
46 //For compilers supporting auto-tss cleanup
47 //with Boost.Threads lib, use Boost.Threads lib
48 # define BOOST_THREAD_USE_LIB