[Boost-bugs] [Boost C++ Libraries] #7872: sregex::compile fails to compile with clang+libc++

Subject: [Boost-bugs] [Boost C++ Libraries] #7872: sregex::compile fails to compile with clang+libc++
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-01-09 21:50:19


#7872: sregex::compile fails to compile with clang+libc++
---------------------------------------------+------------------------------
 Reporter: Thomas Goyne <tgoyne@…> | Owner: eric_niebler
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: xpressive
  Version: Boost 1.52.0 | Severity: Problem
 Keywords: |
---------------------------------------------+------------------------------
 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...

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/7872>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:11 UTC