--- boost/multi_array/base.hpp +++ boost/multi_array/base.hpp @@ -222,7 +222,7 @@ // MSVC 2010 is broken in debug mode: it requires // that an Output Iterator have output_iterator_tag in its iterator_category if // that iterator is not bidirectional_iterator or random_access_iterator. -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600) +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600) || defined __clang__ struct mutable_iterator_tag : boost::random_access_traversal_tag, std::input_iterator_tag { @@ -274,7 +274,7 @@ // // iterator support // -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600) +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600) || defined __clang__ // Deal with VC 2010 output_iterator_tag requirement typedef array_iterator,reference, mutable_iterator_tag> iterator; # workdir/UnpackedTarball/boost/libs/thread/src/win32/thread.cpp(1006,36) : error: dllimport cannot be applied to non-inline function definition # BOOST_THREAD_DECL void __cdecl on_process_enter() # ^ --- boost/thread/detail/config.hpp +++ boost/thread/detail/config.hpp @@ -396,7 +396,7 @@ #else //Use default # if defined(BOOST_THREAD_PLATFORM_WIN32) # if defined(BOOST_MSVC) || defined(BOOST_INTEL_WIN) \ - || defined(__MINGW32__) || defined(MINGW32) || defined(BOOST_MINGW32) + || defined(__MINGW32__) || defined(MINGW32) || defined(BOOST_MINGW32) || defined __clang__ //For compilers supporting auto-tss cleanup //with Boost.Threads lib, use Boost.Threads lib # define BOOST_THREAD_USE_LIB