Opened 10 years ago
Closed 10 years ago
#7872 closed Bugs (worksforme)
sregex::compile fails to compile with clang+libc++
Reported by: | Owned by: | Eric Niebler | |
---|---|---|---|
Milestone: | To Be Determined | Component: | xpressive |
Version: | Boost 1.52.0 | Severity: | Problem |
Keywords: | Cc: |
Description
Given a basic test program:
#include <boost/xpressive/xpressive.hpp> int main() { boost::xpressive::sregex::compile("x"); }
This compiles with no errors when using libstdc++ (with clang++ -std=c++11 -Weverything test.cpp). However, switching to libc++ gives the following result:
$ 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<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &>' : __is_nothrow_constructible<is_constructible<_Tp, _Args...>::value, _Tp, _Args...> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ /usr/bin/../lib/c++/v1/type_traits:2583:14: note: in instantiation of template class 'std::__1::is_nothrow_constructible<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &>' requested here : public is_nothrow_constructible<_Tp, const typename add_lvalue_reference<_Tp>::type> ^ /usr/bin/../lib/c++/v1/utility:241:20: note: in instantiation of template class 'std::__1::is_nothrow_copy_constructible<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' requested here is_nothrow_copy_constructible<second_type>::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<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' requested here value_type __value_; ^ /usr/bin/../lib/c++/v1/type_traits:1889:54: note: in instantiation of template class 'std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>' requested here decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...)), 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<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>>, _Args = <no value>] __is_constructible_test(_Tp&&, _Args&& ...); ^ /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<is_scalar<_Tp>::value || is_reference<_Tp>::value, ^ /usr/bin/../lib/c++/v1/__tree:813:56: note: in instantiation of template class 'std::__1::__compressed_pair<std::__1::__tree_end_node<std::__1::__tree_node_base<void *> *>, std::__1::allocator<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>>>' requested here __compressed_pair<__end_node_t, __node_allocator> __pair1_; ^ /usr/bin/../lib/c++/v1/map:711:22: note: in instantiation of template class 'std::__1::__tree<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, std::__1::__map_value_compare<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, std::__1::less<std::__1::basic_string<char>>, true>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>>' 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<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, std::__1::less<std::__1::basic_string<char>>, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>>' requested here std::map<string_type, basic_regex<BidiIter> > rules_; ^ /usr/local/include/boost/xpressive/basic_regex.hpp:200:16: note: in instantiation of template class 'boost::xpressive::regex_compiler<std::__1::__wrap_iter<const char *>, boost::xpressive::regex_traits<char, boost::xpressive::cpp_regex_traits<char>>, boost::xpressive::compiler_traits<boost::xpressive::regex_traits<char, boost::xpressive::cpp_regex_traits<char>>>>' requested here return regex_compiler<BidiIter>().compile(begin, flags); ^ test.cpp:3:3: note: in instantiation of member function 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *> >::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<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &>' : public __is_nothrow_assignable<is_assignable<_Tp, _Arg>::value, _Tp, _Arg> ~~~~~~~~~~~~~~~~~~~~~~~~~~^ /usr/bin/../lib/c++/v1/type_traits:2667:14: note: in instantiation of template class 'std::__1::is_nothrow_assignable<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &>' requested here : public is_nothrow_assignable<typename add_lvalue_reference<_Tp>::type, ^ /usr/bin/../lib/c++/v1/utility:250:20: note: in instantiation of template class 'std::__1::is_nothrow_copy_assignable<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' requested here is_nothrow_copy_assignable<second_type>::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<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' requested here value_type __value_; ^ /usr/bin/../lib/c++/v1/type_traits:1889:54: note: in instantiation of template class 'std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>' requested here decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...)), 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<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>>, _Args = <no value>] __is_constructible_test(_Tp&&, _Args&& ...); ^ /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<is_scalar<_Tp>::value || is_reference<_Tp>::value, ^ /usr/bin/../lib/c++/v1/__tree:813:56: note: in instantiation of template class 'std::__1::__compressed_pair<std::__1::__tree_end_node<std::__1::__tree_node_base<void *> *>, std::__1::allocator<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>>>' requested here __compressed_pair<__end_node_t, __node_allocator> __pair1_; ^ /usr/bin/../lib/c++/v1/map:711:22: note: in instantiation of template class 'std::__1::__tree<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, std::__1::__map_value_compare<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, std::__1::less<std::__1::basic_string<char>>, true>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>>' 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<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, std::__1::less<std::__1::basic_string<char>>, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>>' requested here std::map<string_type, basic_regex<BidiIter> > rules_; ^ /usr/local/include/boost/xpressive/basic_regex.hpp:200:16: note: in instantiation of template class 'boost::xpressive::regex_compiler<std::__1::__wrap_iter<const char *>, boost::xpressive::regex_traits<char, boost::xpressive::cpp_regex_traits<char>>, boost::xpressive::compiler_traits<boost::xpressive::regex_traits<char, boost::xpressive::cpp_regex_traits<char>>>>' requested here return regex_compiler<BidiIter>().compile(begin, flags); ^ test.cpp:3:3: note: in instantiation of member function 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *> >::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<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &&>' : __is_nothrow_constructible<is_constructible<_Tp, _Args...>::value, _Tp, _Args...> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ /usr/bin/../lib/c++/v1/type_traits:2590:14: note: in instantiation of template class 'std::__1::is_nothrow_constructible<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &&>' requested here : public is_nothrow_constructible<_Tp, typename add_rvalue_reference<_Tp>::type> ^ /usr/bin/../lib/c++/v1/utility:278:33: note: in instantiation of template class 'std::__1::is_nothrow_move_constructible<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' requested here is_nothrow_move_constructible<second_type>::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<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' requested here value_type __value_; ^ /usr/bin/../lib/c++/v1/type_traits:1889:54: note: in instantiation of template class 'std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>' requested here decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...)), 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<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>>, _Args = <no value>] __is_constructible_test(_Tp&&, _Args&& ...); ^ /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<is_scalar<_Tp>::value || is_reference<_Tp>::value, ^ /usr/bin/../lib/c++/v1/__tree:813:56: note: in instantiation of template class 'std::__1::__compressed_pair<std::__1::__tree_end_node<std::__1::__tree_node_base<void *> *>, std::__1::allocator<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>>>' requested here __compressed_pair<__end_node_t, __node_allocator> __pair1_; ^ /usr/bin/../lib/c++/v1/map:711:22: note: in instantiation of template class 'std::__1::__tree<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, std::__1::__map_value_compare<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, std::__1::less<std::__1::basic_string<char>>, true>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>>' 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<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, std::__1::less<std::__1::basic_string<char>>, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>>' requested here std::map<string_type, basic_regex<BidiIter> > rules_; ^ /usr/local/include/boost/xpressive/basic_regex.hpp:200:16: note: in instantiation of template class 'boost::xpressive::regex_compiler<std::__1::__wrap_iter<const char *>, boost::xpressive::regex_traits<char, boost::xpressive::cpp_regex_traits<char>>, boost::xpressive::compiler_traits<boost::xpressive::regex_traits<char, boost::xpressive::cpp_regex_traits<char>>>>' requested here return regex_compiler<BidiIter>().compile(begin, flags); ^ test.cpp:3:3: note: in instantiation of member function 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *> >::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<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &&>' : public __is_nothrow_assignable<is_assignable<_Tp, _Arg>::value, _Tp, _Arg> ~~~~~~~~~~~~~~~~~~~~~~~~~~^ /usr/bin/../lib/c++/v1/type_traits:2674:14: note: in instantiation of template class 'std::__1::is_nothrow_assignable<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>> &&>' requested here : public is_nothrow_assignable<typename add_lvalue_reference<_Tp>::type, ^ /usr/bin/../lib/c++/v1/utility:287:38: note: in instantiation of template class 'std::__1::is_nothrow_move_assignable<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' requested here is_nothrow_move_assignable<second_type>::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<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' requested here value_type __value_; ^ /usr/bin/../lib/c++/v1/type_traits:1889:54: note: in instantiation of template class 'std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>' requested here decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...)), 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<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>>, _Args = <no value>] __is_constructible_test(_Tp&&, _Args&& ...); ^ /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<is_scalar<_Tp>::value || is_reference<_Tp>::value, ^ /usr/bin/../lib/c++/v1/__tree:813:56: note: in instantiation of template class 'std::__1::__compressed_pair<std::__1::__tree_end_node<std::__1::__tree_node_base<void *> *>, std::__1::allocator<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, void *>>>' requested here __compressed_pair<__end_node_t, __node_allocator> __pair1_; ^ /usr/bin/../lib/c++/v1/map:711:22: note: in instantiation of template class 'std::__1::__tree<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>, std::__1::__map_value_compare<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, std::__1::less<std::__1::basic_string<char>>, true>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>>' 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<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, std::__1::less<std::__1::basic_string<char>>, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>>' requested here std::map<string_type, basic_regex<BidiIter> > rules_; ^ /usr/local/include/boost/xpressive/basic_regex.hpp:200:16: note: in instantiation of template class 'boost::xpressive::regex_compiler<std::__1::__wrap_iter<const char *>, boost::xpressive::regex_traits<char, boost::xpressive::cpp_regex_traits<char>>, boost::xpressive::compiler_traits<boost::xpressive::regex_traits<char, boost::xpressive::cpp_regex_traits<char>>>>' requested here return regex_compiler<BidiIter>().compile(begin, flags); ^ test.cpp:3:3: note: in instantiation of member function 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *> >::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<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' is_nothrow_copy_constructible<second_type>::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<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' requested here decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...)), 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<std::__1::pair<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>, _Args = <no value>] __is_constructible_test(_Tp&&, _Args&& ...); ^ /usr/bin/../lib/c++/v1/type_traits:1949:14: note: in instantiation of template class 'std::__1::__is_constructible<false, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>, >' requested here : public __is_constructible<is_scalar<_Tp>::value || is_reference<_Tp>::value, ^ /usr/bin/../lib/c++/v1/type_traits:1975:14: note: in instantiation of template class 'std::__1::__is_constructible_void_check<false, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>, >' requested here : public __is_constructible_void_check<__contains_void<_Tp, _Args...>::value ^ /usr/bin/../lib/c++/v1/type_traits:2455:34: note: in instantiation of template class 'std::__1::is_constructible<std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>, >' requested here : __is_nothrow_constructible<is_constructible<_Tp, _Args...>::value, _Tp, _Args...> ^ /usr/bin/../lib/c++/v1/type_traits:2577:14: note: in instantiation of template class 'std::__1::is_nothrow_constructible<std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>, >' requested here : public is_nothrow_constructible<_Tp> ^ /usr/bin/../lib/c++/v1/map:729:13: note: in instantiation of template class 'std::__1::is_nothrow_default_constructible<std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>>' requested here is_nothrow_default_constructible<allocator_type>::value && ^ /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<std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>, std::__1::less<std::__1::basic_string<char>>, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>>>' requested here std::map<string_type, basic_regex<BidiIter> > rules_; ^ /usr/local/include/boost/xpressive/basic_regex.hpp:200:16: note: in instantiation of template class 'boost::xpressive::regex_compiler<std::__1::__wrap_iter<const char *>, boost::xpressive::regex_traits<char, boost::xpressive::cpp_regex_traits<char>>, boost::xpressive::compiler_traits<boost::xpressive::regex_traits<char, boost::xpressive::cpp_regex_traits<char>>>>' requested here return regex_compiler<BidiIter>().compile(begin, flags); ^ test.cpp:3:3: note: in instantiation of member function 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *> >::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<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' is_nothrow_copy_assignable<second_type>::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<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' is_nothrow_move_constructible<second_type>::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<boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *>>>' is_nothrow_move_assignable<second_type>::value) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ /usr/bin/../lib/c++/v1/__config:253:34: note: expanded from macro '_NOEXCEPT_' # define _NOEXCEPT_(x) noexcept(x) ^ 8 errors generated. }}}_Tp, _Args...
Change History (4)
comment:1 by , 10 years ago
comment:3 by , 10 years ago
I believe that this is a bug in clang.
My evidence? If you update to "today's clang" (built this morning from the trunk), the problem does not occur.
Not a helpful response for the OP, I know.
comment:4 by , 10 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Thanks, Marshall! Closing this one.
Note:
See TracTickets
for help on using tickets.
I'd love to help, but sadly I've never been able to get clang/libc++ to work on Windows. Patches welcome.