Boost C++ Libraries: Ticket #11280: VS 2010 with LLVM https://svn.boost.org/trac10/ticket/11280 <p> I can't compile anything that includes BOOST when I use as a compiler clang on MSVC 2010/2013. The error is a compiler error and not a linker error. I already built BOOST for CLANG on windows, but I didn't get to the linking stage. </p> <p> Here is the error log: </p> <p> 1&gt;------ Build started: Project: llvmTest, Configuration: Debug LLVM Win32 ------ 1&gt; In file included from Source.cpp:1: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread.hpp:13: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/thread.hpp:12: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/thread_only.hpp:15: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/win32/thread_data.hpp:10: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/thread_time.hpp:9: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/date_time/time_clock.hpp:17: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/shared_ptr.hpp:17: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/smart_ptr/shared_ptr.hpp:28: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/smart_ptr/detail/shared_count.hpp:29: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/smart_ptr/detail/sp_counted_base.hpp:45: 1&gt;c:\Boost\include\boost-1_58\boost/smart_ptr/detail/sp_counted_base_clang.hpp(27,8): error : unknown type name '_Atomic' 1&gt; typedef _Atomic( boost::int_least32_t ) atomic_int_least32_t; 1&gt; <sup> 1&gt;c:\Boost\include\boost-1_58\boost/smart_ptr/detail/sp_counted_base_clang.hpp(27,24): error : cannot define or redeclare 'int_least32_t' here because namespace 'detail' does not enclose namespace 'boost' 1&gt; typedef _Atomic( boost::int_least32_t ) atomic_int_least32_t; 1&gt; <del></del><del>~</del></sup><del> 1&gt;c:\Boost\include\boost-1_58\boost/smart_ptr/detail/sp_counted_base_clang.hpp(27,24): error : typedef declarator cannot be qualified 1&gt; typedef _Atomic( boost::int_least32_t ) atomic_int_least32_t; 1&gt; </del><del></del>~<sup> 1&gt;c:\Boost\include\boost-1_58\boost/smart_ptr/detail/sp_counted_base_clang.hpp(27,39): error : expected ';' after top level declarator 1&gt; typedef _Atomic( boost::int_least32_t ) atomic_int_least32_t; 1&gt; </sup> 1&gt;c:\Boost\include\boost-1_58\boost/smart_ptr/detail/sp_counted_base_clang.hpp(29,30): error : unknown type name 'atomic_int_least32_t' 1&gt; inline void atomic_increment( atomic_int_least32_t * pw ) 1&gt; <sup> 1&gt;c:\Boost\include\boost-1_58\boost/smart_ptr/detail/sp_counted_base_clang.hpp(34,46): error : unknown type name 'atomic_int_least32_t' 1&gt; inline boost::int_least32_t atomic_decrement( atomic_int_least32_t * pw ) 1&gt; </sup> 1&gt;c:\Boost\include\boost-1_58\boost/smart_ptr/detail/sp_counted_base_clang.hpp(39,58): error : unknown type name 'atomic_int_least32_t' 1&gt; inline boost::int_least32_t atomic_conditional_increment( atomic_int_least32_t * pw ) 1&gt; <sup> 1&gt;c:\Boost\include\boost-1_58\boost/smart_ptr/detail/sp_counted_base_clang.hpp(68,4): error : unknown type name 'atomic_int_least32_t' 1&gt; atomic_int_least32_t use_count_; <em> #shared 1&gt; </em></sup><em> 1&gt;c:\Boost\include\boost-1_58\boost/smart_ptr/detail/sp_counted_base_clang.hpp(69,4): error : unknown type name 'atomic_int_least32_t' 1&gt; atomic_int_least32_t weak_count_; </em> #weak + (#shared != 0) 1&gt; <sup> 1&gt;c:\Boost\include\boost-1_58\boost/smart_ptr/detail/sp_counted_base_clang.hpp(132,46): error : unknown type name 'atomic_int_least32_t' 1&gt; return <span class="underline">c11_atomic_load( const_cast&lt; atomic_int_least32_t* &gt;( &amp;use_count_ ), </span>ATOMIC_ACQUIRE ); 1&gt; </sup> 1&gt; In file included from Source.cpp:1: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread.hpp:13: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/thread.hpp:12: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/thread_only.hpp:15: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/win32/thread_data.hpp:11: 1&gt;c:\Boost\include\boost-1_58\boost/thread/win32/thread_primitives.hpp(183,53): error : redeclaration of 'Sleep' cannot add 'dllimport' attribute 1&gt; <span class="underline">declspec(dllimport) void </span>stdcall Sleep(unsigned long); 1&gt; <sup> 1&gt; c:\Boost\include\boost-1_58\boost/smart_ptr/detail/yield_k.hpp(63,28) : note: previous declaration is here 1&gt; extern "C" void <span class="underline">stdcall Sleep( unsigned long ms ); 1&gt; </span></sup><span class="underline"> 1&gt; In file included from Source.cpp:1: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread.hpp:13: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/thread.hpp:12: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/thread_only.hpp:15: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/win32/thread_data.hpp:11: 1&gt;c:\Boost\include\boost-1_58\boost/thread/win32/thread_primitives.hpp(418,20): error : no member named 'Sleep' in namespace 'boost::detail::win32'; did you mean simply 'Sleep'? 1&gt; ::boost::detail::win32::Sleep(0); 1&gt; <sup><del></del><del></del><del></del><del></del><del></del><del>~ 1&gt; c:\Boost\include\boost-1_58\boost/smart_ptr/detail/yield_k.hpp(63,28) : note: 'Sleep' declared here 1&gt; extern "C" void </del></sup></span><sup><del>stdcall Sleep( unsigned long ms ); 1&gt; </del></sup><del> 1&gt; In file included from Source.cpp:1: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread.hpp:13: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/thread.hpp:12: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/thread_only.hpp:15: 1&gt; In file included from c:\Boost\include\boost-1_58\boost/thread/win32/thread_data.hpp:11: 1&gt;c:\Boost\include\boost-1_58\boost/thread/win32/thread_primitives.hpp(426,44): error : no type named 'Sleep' in namespace 'boost::detail::win32' 1&gt; ::boost::detail::win32::Sleep(milliseconds); 1&gt; </del><del></del><del></del><del></del><del></del><del></del><del><sup> 1&gt; 13 errors generated. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== </sup></del></p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11280 Trac 1.4.3 John Maddock Sun, 17 May 2015 08:52:27 GMT component changed; owner set https://svn.boost.org/trac10/ticket/11280#comment:1 https://svn.boost.org/trac10/ticket/11280#comment:1 <ul> <li><strong>owner</strong> set to <span class="trac-author">Peter Dimov</span> </li> <li><strong>component</strong> <span class="trac-field-old">None</span> → <span class="trac-field-new">smart_ptr</span> </li> </ul> Ticket Peter Dimov Sun, 17 May 2015 11:30:31 GMT <link>https://svn.boost.org/trac10/ticket/11280#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11280#comment:2</guid> <description> <p> <code>sp_counted_base_clang.hpp</code> is included when <code>__has_extension( __c_atomic__ )</code>, which should mean that the C11 keyword <code>_Atomic</code> is available. This does seem to be the case for Clang on other platforms. You might want to inquire about this in a <code>clang-cl</code> specific forum. </p> </description> <category>Ticket</category> </item> </channel> </rss>