Boost C++ Libraries: Ticket #7872: sregex::compile fails to compile with clang+libc++ https://svn.boost.org/trac10/ticket/7872 <p> Given a basic test program: </p> <pre class="wiki">#include &lt;boost/xpressive/xpressive.hpp&gt; int main() { boost::xpressive::sregex::compile("x"); } </pre><p> This compiles with no errors when using libstdc++ (with clang++ -std=c++11 -Weverything test.cpp). However, switching to libc++ gives the following result: </p> <pre class="wiki">$ clang++ --version [2s] Apple clang version 4.1 (tags/Apple/clang-421.11.65) (based on LLVM 3.1svn) Target: x86_64-apple-darwin12.2.0 Thread model: posix $ clang++ -std=c++11 -Weverything -stdlib=libc++ test.cpp In file included from test.cpp:1: In file included from /usr/local/include/boost/xpressive/xpressive.hpp:18: In file included from /usr/local/include/boost/xpressive/xpressive_static.hpp:24: In file included from /usr/local/include/boost/xpressive/regex_primitives.hpp:12: In file included from /usr/bin/../lib/c++/v1/vector:261: In file included from /usr/bin/../lib/c++/v1/__bit_reference:15: In file included from /usr/bin/../lib/c++/v1/algorithm:591: /usr/bin/../lib/c++/v1/type_traits:2455:67: error: no member named 'value' in 'std::__1::is_constructible&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;&gt;' : __is_nothrow_constructible&lt;is_constructible&lt;_Tp, _Args...&gt;::value, _Tp, _Args...&gt; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ /usr/bin/../lib/c++/v1/type_traits:2583:14: note: in instantiation of template class 'std::__1::is_nothrow_constructible&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;&gt;' requested here : public is_nothrow_constructible&lt;_Tp, const typename add_lvalue_reference&lt;_Tp&gt;::type&gt; ^ /usr/bin/../lib/c++/v1/utility:241:20: note: in instantiation of template class 'std::__1::is_nothrow_copy_constructible&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' requested here is_nothrow_copy_constructible&lt;second_type&gt;::value) ^ /usr/bin/../lib/c++/v1/__config:253:34: note: expanded from macro '_NOEXCEPT_' # define _NOEXCEPT_(x) noexcept(x) ^ /usr/bin/../lib/c++/v1/__tree:602:16: note: in instantiation of template class 'std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' requested here value_type __value_; ^ /usr/bin/../lib/c++/v1/type_traits:1889:54: note: in instantiation of template class 'std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;' requested here decltype(_VSTD::move(_Tp(_VSTD::declval&lt;_Args&gt;()...)), true_type()) ^ /usr/bin/../lib/c++/v1/type_traits:1890:1: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp = std::__1::allocator&lt;std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;&gt;, _Args = &lt;no value&gt;] __is_constructible_test(_Tp&amp;&amp;, _Args&amp;&amp; ...); ^ /usr/bin/../lib/c++/v1/type_traits:1949:14: note: (skipping 6 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) : public __is_constructible&lt;is_scalar&lt;_Tp&gt;::value || is_reference&lt;_Tp&gt;::value, ^ /usr/bin/../lib/c++/v1/__tree:813:56: note: in instantiation of template class 'std::__1::__compressed_pair&lt;std::__1::__tree_end_node&lt;std::__1::__tree_node_base&lt;void *&gt; *&gt;, std::__1::allocator&lt;std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;&gt;&gt;' requested here __compressed_pair&lt;__end_node_t, __node_allocator&gt; __pair1_; ^ /usr/bin/../lib/c++/v1/map:711:22: note: in instantiation of template class 'std::__1::__tree&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, std::__1::__map_value_compare&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, std::__1::less&lt;std::__1::basic_string&lt;char&gt;&gt;, true&gt;, std::__1::allocator&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;&gt;' requested here typedef typename __base::__node_traits __node_traits; ^ /usr/local/include/boost/xpressive/regex_compiler.hpp:739:51: note: in instantiation of template class 'std::__1::map&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, std::__1::less&lt;std::__1::basic_string&lt;char&gt;&gt;, std::__1::allocator&lt;std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;&gt;' requested here std::map&lt;string_type, basic_regex&lt;BidiIter&gt; &gt; rules_; ^ /usr/local/include/boost/xpressive/basic_regex.hpp:200:16: note: in instantiation of template class 'boost::xpressive::regex_compiler&lt;std::__1::__wrap_iter&lt;const char *&gt;, boost::xpressive::regex_traits&lt;char, boost::xpressive::cpp_regex_traits&lt;char&gt;&gt;, boost::xpressive::compiler_traits&lt;boost::xpressive::regex_traits&lt;char, boost::xpressive::cpp_regex_traits&lt;char&gt;&gt;&gt;&gt;' requested here return regex_compiler&lt;BidiIter&gt;().compile(begin, flags); ^ test.cpp:3:3: note: in instantiation of member function 'boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt; &gt;::compile' requested here boost::xpressive::sregex::compile("x"); ^ In file included from test.cpp:1: In file included from /usr/local/include/boost/xpressive/xpressive.hpp:18: In file included from /usr/local/include/boost/xpressive/xpressive_static.hpp:24: In file included from /usr/local/include/boost/xpressive/regex_primitives.hpp:12: In file included from /usr/bin/../lib/c++/v1/vector:261: In file included from /usr/bin/../lib/c++/v1/__bit_reference:15: In file included from /usr/bin/../lib/c++/v1/algorithm:591: /usr/bin/../lib/c++/v1/type_traits:2616:64: error: no member named 'value' in 'std::__1::is_assignable&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;&gt;' : public __is_nothrow_assignable&lt;is_assignable&lt;_Tp, _Arg&gt;::value, _Tp, _Arg&gt; ~~~~~~~~~~~~~~~~~~~~~~~~~~^ /usr/bin/../lib/c++/v1/type_traits:2667:14: note: in instantiation of template class 'std::__1::is_nothrow_assignable&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;&gt;' requested here : public is_nothrow_assignable&lt;typename add_lvalue_reference&lt;_Tp&gt;::type, ^ /usr/bin/../lib/c++/v1/utility:250:20: note: in instantiation of template class 'std::__1::is_nothrow_copy_assignable&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' requested here is_nothrow_copy_assignable&lt;second_type&gt;::value) ^ /usr/bin/../lib/c++/v1/__config:253:34: note: expanded from macro '_NOEXCEPT_' # define _NOEXCEPT_(x) noexcept(x) ^ /usr/bin/../lib/c++/v1/__tree:602:16: note: in instantiation of template class 'std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' requested here value_type __value_; ^ /usr/bin/../lib/c++/v1/type_traits:1889:54: note: in instantiation of template class 'std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;' requested here decltype(_VSTD::move(_Tp(_VSTD::declval&lt;_Args&gt;()...)), true_type()) ^ /usr/bin/../lib/c++/v1/type_traits:1890:1: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp = std::__1::allocator&lt;std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;&gt;, _Args = &lt;no value&gt;] __is_constructible_test(_Tp&amp;&amp;, _Args&amp;&amp; ...); ^ /usr/bin/../lib/c++/v1/type_traits:1949:14: note: (skipping 6 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) : public __is_constructible&lt;is_scalar&lt;_Tp&gt;::value || is_reference&lt;_Tp&gt;::value, ^ /usr/bin/../lib/c++/v1/__tree:813:56: note: in instantiation of template class 'std::__1::__compressed_pair&lt;std::__1::__tree_end_node&lt;std::__1::__tree_node_base&lt;void *&gt; *&gt;, std::__1::allocator&lt;std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;&gt;&gt;' requested here __compressed_pair&lt;__end_node_t, __node_allocator&gt; __pair1_; ^ /usr/bin/../lib/c++/v1/map:711:22: note: in instantiation of template class 'std::__1::__tree&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, std::__1::__map_value_compare&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, std::__1::less&lt;std::__1::basic_string&lt;char&gt;&gt;, true&gt;, std::__1::allocator&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;&gt;' requested here typedef typename __base::__node_traits __node_traits; ^ /usr/local/include/boost/xpressive/regex_compiler.hpp:739:51: note: in instantiation of template class 'std::__1::map&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, std::__1::less&lt;std::__1::basic_string&lt;char&gt;&gt;, std::__1::allocator&lt;std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;&gt;' requested here std::map&lt;string_type, basic_regex&lt;BidiIter&gt; &gt; rules_; ^ /usr/local/include/boost/xpressive/basic_regex.hpp:200:16: note: in instantiation of template class 'boost::xpressive::regex_compiler&lt;std::__1::__wrap_iter&lt;const char *&gt;, boost::xpressive::regex_traits&lt;char, boost::xpressive::cpp_regex_traits&lt;char&gt;&gt;, boost::xpressive::compiler_traits&lt;boost::xpressive::regex_traits&lt;char, boost::xpressive::cpp_regex_traits&lt;char&gt;&gt;&gt;&gt;' requested here return regex_compiler&lt;BidiIter&gt;().compile(begin, flags); ^ test.cpp:3:3: note: in instantiation of member function 'boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt; &gt;::compile' requested here boost::xpressive::sregex::compile("x"); ^ In file included from test.cpp:1: In file included from /usr/local/include/boost/xpressive/xpressive.hpp:18: In file included from /usr/local/include/boost/xpressive/xpressive_static.hpp:24: In file included from /usr/local/include/boost/xpressive/regex_primitives.hpp:12: In file included from /usr/bin/../lib/c++/v1/vector:261: In file included from /usr/bin/../lib/c++/v1/__bit_reference:15: In file included from /usr/bin/../lib/c++/v1/algorithm:591: /usr/bin/../lib/c++/v1/type_traits:2455:67: error: no member named 'value' in 'std::__1::is_constructible&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;&amp;&gt;' : __is_nothrow_constructible&lt;is_constructible&lt;_Tp, _Args...&gt;::value, _Tp, _Args...&gt; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ /usr/bin/../lib/c++/v1/type_traits:2590:14: note: in instantiation of template class 'std::__1::is_nothrow_constructible&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;&amp;&gt;' requested here : public is_nothrow_constructible&lt;_Tp, typename add_rvalue_reference&lt;_Tp&gt;::type&gt; ^ /usr/bin/../lib/c++/v1/utility:278:33: note: in instantiation of template class 'std::__1::is_nothrow_move_constructible&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' requested here is_nothrow_move_constructible&lt;second_type&gt;::value) ^ /usr/bin/../lib/c++/v1/__config:253:34: note: expanded from macro '_NOEXCEPT_' # define _NOEXCEPT_(x) noexcept(x) ^ /usr/bin/../lib/c++/v1/__tree:602:16: note: in instantiation of template class 'std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' requested here value_type __value_; ^ /usr/bin/../lib/c++/v1/type_traits:1889:54: note: in instantiation of template class 'std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;' requested here decltype(_VSTD::move(_Tp(_VSTD::declval&lt;_Args&gt;()...)), true_type()) ^ /usr/bin/../lib/c++/v1/type_traits:1890:1: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp = std::__1::allocator&lt;std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;&gt;, _Args = &lt;no value&gt;] __is_constructible_test(_Tp&amp;&amp;, _Args&amp;&amp; ...); ^ /usr/bin/../lib/c++/v1/type_traits:1949:14: note: (skipping 6 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) : public __is_constructible&lt;is_scalar&lt;_Tp&gt;::value || is_reference&lt;_Tp&gt;::value, ^ /usr/bin/../lib/c++/v1/__tree:813:56: note: in instantiation of template class 'std::__1::__compressed_pair&lt;std::__1::__tree_end_node&lt;std::__1::__tree_node_base&lt;void *&gt; *&gt;, std::__1::allocator&lt;std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;&gt;&gt;' requested here __compressed_pair&lt;__end_node_t, __node_allocator&gt; __pair1_; ^ /usr/bin/../lib/c++/v1/map:711:22: note: in instantiation of template class 'std::__1::__tree&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, std::__1::__map_value_compare&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, std::__1::less&lt;std::__1::basic_string&lt;char&gt;&gt;, true&gt;, std::__1::allocator&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;&gt;' requested here typedef typename __base::__node_traits __node_traits; ^ /usr/local/include/boost/xpressive/regex_compiler.hpp:739:51: note: in instantiation of template class 'std::__1::map&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, std::__1::less&lt;std::__1::basic_string&lt;char&gt;&gt;, std::__1::allocator&lt;std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;&gt;' requested here std::map&lt;string_type, basic_regex&lt;BidiIter&gt; &gt; rules_; ^ /usr/local/include/boost/xpressive/basic_regex.hpp:200:16: note: in instantiation of template class 'boost::xpressive::regex_compiler&lt;std::__1::__wrap_iter&lt;const char *&gt;, boost::xpressive::regex_traits&lt;char, boost::xpressive::cpp_regex_traits&lt;char&gt;&gt;, boost::xpressive::compiler_traits&lt;boost::xpressive::regex_traits&lt;char, boost::xpressive::cpp_regex_traits&lt;char&gt;&gt;&gt;&gt;' requested here return regex_compiler&lt;BidiIter&gt;().compile(begin, flags); ^ test.cpp:3:3: note: in instantiation of member function 'boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt; &gt;::compile' requested here boost::xpressive::sregex::compile("x"); ^ In file included from test.cpp:1: In file included from /usr/local/include/boost/xpressive/xpressive.hpp:18: In file included from /usr/local/include/boost/xpressive/xpressive_static.hpp:24: In file included from /usr/local/include/boost/xpressive/regex_primitives.hpp:12: In file included from /usr/bin/../lib/c++/v1/vector:261: In file included from /usr/bin/../lib/c++/v1/__bit_reference:15: In file included from /usr/bin/../lib/c++/v1/algorithm:591: /usr/bin/../lib/c++/v1/type_traits:2616:64: error: no member named 'value' in 'std::__1::is_assignable&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;&amp;&gt;' : public __is_nothrow_assignable&lt;is_assignable&lt;_Tp, _Arg&gt;::value, _Tp, _Arg&gt; ~~~~~~~~~~~~~~~~~~~~~~~~~~^ /usr/bin/../lib/c++/v1/type_traits:2674:14: note: in instantiation of template class 'std::__1::is_nothrow_assignable&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt; &amp;&amp;&gt;' requested here : public is_nothrow_assignable&lt;typename add_lvalue_reference&lt;_Tp&gt;::type, ^ /usr/bin/../lib/c++/v1/utility:287:38: note: in instantiation of template class 'std::__1::is_nothrow_move_assignable&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' requested here is_nothrow_move_assignable&lt;second_type&gt;::value) ^ /usr/bin/../lib/c++/v1/__config:253:34: note: expanded from macro '_NOEXCEPT_' # define _NOEXCEPT_(x) noexcept(x) ^ /usr/bin/../lib/c++/v1/__tree:602:16: note: in instantiation of template class 'std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' requested here value_type __value_; ^ /usr/bin/../lib/c++/v1/type_traits:1889:54: note: in instantiation of template class 'std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;' requested here decltype(_VSTD::move(_Tp(_VSTD::declval&lt;_Args&gt;()...)), true_type()) ^ /usr/bin/../lib/c++/v1/type_traits:1890:1: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp = std::__1::allocator&lt;std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;&gt;, _Args = &lt;no value&gt;] __is_constructible_test(_Tp&amp;&amp;, _Args&amp;&amp; ...); ^ /usr/bin/../lib/c++/v1/type_traits:1949:14: note: (skipping 6 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) : public __is_constructible&lt;is_scalar&lt;_Tp&gt;::value || is_reference&lt;_Tp&gt;::value, ^ /usr/bin/../lib/c++/v1/__tree:813:56: note: in instantiation of template class 'std::__1::__compressed_pair&lt;std::__1::__tree_end_node&lt;std::__1::__tree_node_base&lt;void *&gt; *&gt;, std::__1::allocator&lt;std::__1::__tree_node&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, void *&gt;&gt;&gt;' requested here __compressed_pair&lt;__end_node_t, __node_allocator&gt; __pair1_; ^ /usr/bin/../lib/c++/v1/map:711:22: note: in instantiation of template class 'std::__1::__tree&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;, std::__1::__map_value_compare&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, std::__1::less&lt;std::__1::basic_string&lt;char&gt;&gt;, true&gt;, std::__1::allocator&lt;std::__1::pair&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;&gt;' requested here typedef typename __base::__node_traits __node_traits; ^ /usr/local/include/boost/xpressive/regex_compiler.hpp:739:51: note: in instantiation of template class 'std::__1::map&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, std::__1::less&lt;std::__1::basic_string&lt;char&gt;&gt;, std::__1::allocator&lt;std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;&gt;' requested here std::map&lt;string_type, basic_regex&lt;BidiIter&gt; &gt; rules_; ^ /usr/local/include/boost/xpressive/basic_regex.hpp:200:16: note: in instantiation of template class 'boost::xpressive::regex_compiler&lt;std::__1::__wrap_iter&lt;const char *&gt;, boost::xpressive::regex_traits&lt;char, boost::xpressive::cpp_regex_traits&lt;char&gt;&gt;, boost::xpressive::compiler_traits&lt;boost::xpressive::regex_traits&lt;char, boost::xpressive::cpp_regex_traits&lt;char&gt;&gt;&gt;&gt;' requested here return regex_compiler&lt;BidiIter&gt;().compile(begin, flags); ^ test.cpp:3:3: note: in instantiation of member function 'boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt; &gt;::compile' requested here boost::xpressive::sregex::compile("x"); ^ In file included from test.cpp:1: In file included from /usr/local/include/boost/xpressive/xpressive.hpp:18: In file included from /usr/local/include/boost/xpressive/xpressive_static.hpp:24: In file included from /usr/local/include/boost/xpressive/regex_primitives.hpp:12: In file included from /usr/bin/../lib/c++/v1/vector:261: In file included from /usr/bin/../lib/c++/v1/__bit_reference:15: In file included from /usr/bin/../lib/c++/v1/algorithm:593: /usr/bin/../lib/c++/v1/utility:241:64: error: no member named 'value' in 'std::__1::is_nothrow_copy_constructible&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' is_nothrow_copy_constructible&lt;second_type&gt;::value) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ /usr/bin/../lib/c++/v1/__config:253:34: note: expanded from macro '_NOEXCEPT_' # define _NOEXCEPT_(x) noexcept(x) ^ /usr/bin/../lib/c++/v1/type_traits:1889:54: note: in instantiation of template class 'std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' requested here decltype(_VSTD::move(_Tp(_VSTD::declval&lt;_Args&gt;()...)), true_type()) ^ /usr/bin/../lib/c++/v1/type_traits:1890:1: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp = std::__1::allocator&lt;std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;, _Args = &lt;no value&gt;] __is_constructible_test(_Tp&amp;&amp;, _Args&amp;&amp; ...); ^ /usr/bin/../lib/c++/v1/type_traits:1949:14: note: in instantiation of template class 'std::__1::__is_constructible&lt;false, std::__1::allocator&lt;std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;, &gt;' requested here : public __is_constructible&lt;is_scalar&lt;_Tp&gt;::value || is_reference&lt;_Tp&gt;::value, ^ /usr/bin/../lib/c++/v1/type_traits:1975:14: note: in instantiation of template class 'std::__1::__is_constructible_void_check&lt;false, std::__1::allocator&lt;std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;, &gt;' requested here : public __is_constructible_void_check&lt;__contains_void&lt;_Tp, _Args...&gt;::value ^ /usr/bin/../lib/c++/v1/type_traits:2455:34: note: in instantiation of template class 'std::__1::is_constructible&lt;std::__1::allocator&lt;std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;, &gt;' requested here : __is_nothrow_constructible&lt;is_constructible&lt;_Tp, _Args...&gt;::value, _Tp, _Args...&gt; ^ /usr/bin/../lib/c++/v1/type_traits:2577:14: note: in instantiation of template class 'std::__1::is_nothrow_constructible&lt;std::__1::allocator&lt;std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;, &gt;' requested here : public is_nothrow_constructible&lt;_Tp&gt; ^ /usr/bin/../lib/c++/v1/map:729:13: note: in instantiation of template class 'std::__1::is_nothrow_default_constructible&lt;std::__1::allocator&lt;std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;&gt;' requested here is_nothrow_default_constructible&lt;allocator_type&gt;::value &amp;&amp; ^ /usr/bin/../lib/c++/v1/__config:253:34: note: expanded from macro '_NOEXCEPT_' # define _NOEXCEPT_(x) noexcept(x) ^ /usr/local/include/boost/xpressive/regex_compiler.hpp:739:51: note: in instantiation of template class 'std::__1::map&lt;std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;, std::__1::less&lt;std::__1::basic_string&lt;char&gt;&gt;, std::__1::allocator&lt;std::__1::pair&lt;const std::__1::basic_string&lt;char&gt;, boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;&gt;&gt;' requested here std::map&lt;string_type, basic_regex&lt;BidiIter&gt; &gt; rules_; ^ /usr/local/include/boost/xpressive/basic_regex.hpp:200:16: note: in instantiation of template class 'boost::xpressive::regex_compiler&lt;std::__1::__wrap_iter&lt;const char *&gt;, boost::xpressive::regex_traits&lt;char, boost::xpressive::cpp_regex_traits&lt;char&gt;&gt;, boost::xpressive::compiler_traits&lt;boost::xpressive::regex_traits&lt;char, boost::xpressive::cpp_regex_traits&lt;char&gt;&gt;&gt;&gt;' requested here return regex_compiler&lt;BidiIter&gt;().compile(begin, flags); ^ test.cpp:3:3: note: in instantiation of member function 'boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt; &gt;::compile' requested here boost::xpressive::sregex::compile("x"); ^ In file included from test.cpp:1: In file included from /usr/local/include/boost/xpressive/xpressive.hpp:18: In file included from /usr/local/include/boost/xpressive/xpressive_static.hpp:24: In file included from /usr/local/include/boost/xpressive/regex_primitives.hpp:12: In file included from /usr/bin/../lib/c++/v1/vector:261: In file included from /usr/bin/../lib/c++/v1/__bit_reference:15: In file included from /usr/bin/../lib/c++/v1/algorithm:593: /usr/bin/../lib/c++/v1/utility:250:61: error: no member named 'value' in 'std::__1::is_nothrow_copy_assignable&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' is_nothrow_copy_assignable&lt;second_type&gt;::value) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ /usr/bin/../lib/c++/v1/__config:253:34: note: expanded from macro '_NOEXCEPT_' # define _NOEXCEPT_(x) noexcept(x) ^ In file included from test.cpp:1: In file included from /usr/local/include/boost/xpressive/xpressive.hpp:18: In file included from /usr/local/include/boost/xpressive/xpressive_static.hpp:24: In file included from /usr/local/include/boost/xpressive/regex_primitives.hpp:12: In file included from /usr/bin/../lib/c++/v1/vector:261: In file included from /usr/bin/../lib/c++/v1/__bit_reference:15: In file included from /usr/bin/../lib/c++/v1/algorithm:593: /usr/bin/../lib/c++/v1/utility:278:77: error: no member named 'value' in 'std::__1::is_nothrow_move_constructible&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' is_nothrow_move_constructible&lt;second_type&gt;::value) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ /usr/bin/../lib/c++/v1/__config:253:34: note: expanded from macro '_NOEXCEPT_' # define _NOEXCEPT_(x) noexcept(x) ^ In file included from test.cpp:1: In file included from /usr/local/include/boost/xpressive/xpressive.hpp:18: In file included from /usr/local/include/boost/xpressive/xpressive_static.hpp:24: In file included from /usr/local/include/boost/xpressive/regex_primitives.hpp:12: In file included from /usr/bin/../lib/c++/v1/vector:261: In file included from /usr/bin/../lib/c++/v1/__bit_reference:15: In file included from /usr/bin/../lib/c++/v1/algorithm:593: /usr/bin/../lib/c++/v1/utility:287:79: error: no member named 'value' in 'std::__1::is_nothrow_move_assignable&lt;boost::xpressive::basic_regex&lt;std::__1::__wrap_iter&lt;const char *&gt;&gt;&gt;' is_nothrow_move_assignable&lt;second_type&gt;::value) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ /usr/bin/../lib/c++/v1/__config:253:34: note: expanded from macro '_NOEXCEPT_' # define _NOEXCEPT_(x) noexcept(x) ^ 8 errors generated. }}}_Tp, _Args... </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/7872 Trac 1.4.3 Eric Niebler Wed, 09 Jan 2013 22:35:56 GMT <link>https://svn.boost.org/trac10/ticket/7872#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7872#comment:1</guid> <description> <p> I'd love to help, but sadly I've never been able to get clang/libc++ to work on Windows. Patches welcome. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Marshall Clow</dc:creator> <pubDate>Thu, 10 Jan 2013 00:35:43 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7872#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7872#comment:2</guid> <description> <p> I can take a look. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Marshall Clow</dc:creator> <pubDate>Thu, 10 Jan 2013 00:45:27 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7872#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7872#comment:3</guid> <description> <p> I believe that this is a bug in clang. </p> <p> My evidence? If you update to "today's clang" (built this morning from the trunk), the problem does not occur. </p> <p> Not a helpful response for the OP, I know. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Eric Niebler</dc:creator> <pubDate>Thu, 10 Jan 2013 00:47:44 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/7872#comment:4 https://svn.boost.org/trac10/ticket/7872#comment:4 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">worksforme</span> </li> </ul> <p> Thanks, Marshall! Closing this one. </p> Ticket