Menu

Compile fails against clang / libc++

Rich E
2012-07-29
2013-06-03
  • Rich E

    Rich E - 2012-07-29

    I just wanted to note here that I tried compiling Boost.Log from trunk without success when using clang / libc++.  The command to compile is (after copying boost.log folders into boost-trunk):

    ./bootstrap.sh --with-libraries=log
    /b2 -d+2 -a toolset=clang cxxflags="-std=c++11 -stdlib=libc++ -arch i386" linkflags="-stdlib=libc++ -arch i386" architecture=x86 stage
    

    And here is the compile output, where the errors start (quite a way in):

    In file included from libs/log/src/default_filter_factory.cpp:16:
    In file included from /usr/bin/../lib/c++/v1/new:56:
    In file included from /usr/bin/../lib/c++/v1/exception:81:
    /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;
                         ^
    ./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_;
                                                      ^
    ./boost/xpressive/basic_regex.hpp:193: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(pat, flags);
                   ^
    libs/log/src/default_filter_factory.cpp:107:32: note: in instantiation of function template specialization 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *> >::compile<std::__1::basic_string<char> >' requested here
            regex_t rex = regex_t::compile(arg, regex_t::ECMAScript | regex_t::optimize);
                                   ^
    In file included from libs/log/src/default_filter_factory.cpp:16:
    In file included from /usr/bin/../lib/c++/v1/new:56:
    In file included from /usr/bin/../lib/c++/v1/exception:81:
    /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;
                         ^
    ./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_;
                                                      ^
    ./boost/xpressive/basic_regex.hpp:193: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(pat, flags);
                   ^
    libs/log/src/default_filter_factory.cpp:107:32: note: in instantiation of function template specialization 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *> >::compile<std::__1::basic_string<char> >' requested here
            regex_t rex = regex_t::compile(arg, regex_t::ECMAScript | regex_t::optimize);
                                   ^
    In file included from libs/log/src/default_filter_factory.cpp:16:
    In file included from /usr/bin/../lib/c++/v1/new:56:
    In file included from /usr/bin/../lib/c++/v1/exception:81:
    /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;
                         ^
    ./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_;
                                                      ^
    ./boost/xpressive/basic_regex.hpp:193: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(pat, flags);
                   ^
    libs/log/src/default_filter_factory.cpp:107:32: note: in instantiation of function template specialization 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *> >::compile<std::__1::basic_string<char> >' requested here
            regex_t rex = regex_t::compile(arg, regex_t::ECMAScript | regex_t::optimize);
                                   ^
    In file included from libs/log/src/default_filter_factory.cpp:16:
    In file included from /usr/bin/../lib/c++/v1/new:56:
    In file included from /usr/bin/../lib/c++/v1/exception:81:
    /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;
                         ^
    ./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_;
                                                      ^
    ./boost/xpressive/basic_regex.hpp:193: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(pat, flags);
                   ^
    libs/log/src/default_filter_factory.cpp:107:32: note: in instantiation of function template specialization 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *> >::compile<std::__1::basic_string<char> >' requested here
            regex_t rex = regex_t::compile(arg, regex_t::ECMAScript | regex_t::optimize);
                                   ^
    In file included from libs/log/src/default_filter_factory.cpp:22:
    In file included from ./boost/ref.hpp:10:
    In file included from ./boost/config.hpp:40:
    In file included from ./boost/config/select_stdlib_config.hpp:37:
    In file included from ./boost/config/no_tr1/utility.hpp:21:
    /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)
                                     ^
    ./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_;
                                                      ^
    ./boost/xpressive/basic_regex.hpp:193: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(pat, flags);
                   ^
    libs/log/src/default_filter_factory.cpp:107:32: note: in instantiation of function template specialization 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const char *> >::compile<std::__1::basic_string<char> >' requested here
            regex_t rex = regex_t::compile(arg, regex_t::ECMAScript | regex_t::optimize);
                                   ^
    In file included from libs/log/src/default_filter_factory.cpp:22:
    In file included from ./boost/ref.hpp:10:
    In file included from ./boost/config.hpp:40:
    In file included from ./boost/config/select_stdlib_config.hpp:37:
    In file included from ./boost/config/no_tr1/utility.hpp:21:
    /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 libs/log/src/default_filter_factory.cpp:22:
    In file included from ./boost/ref.hpp:10:
    In file included from ./boost/config.hpp:40:
    In file included from ./boost/config/select_stdlib_config.hpp:37:
    In file included from ./boost/config/no_tr1/utility.hpp:21:
    /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 libs/log/src/default_filter_factory.cpp:22:
    In file included from ./boost/ref.hpp:10:
    In file included from ./boost/config.hpp:40:
    In file included from ./boost/config/select_stdlib_config.hpp:37:
    In file included from ./boost/config/no_tr1/utility.hpp:21:
    /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)
                                     ^
    In file included from libs/log/src/default_filter_factory.cpp:16:
    In file included from /usr/bin/../lib/c++/v1/new:56:
    In file included from /usr/bin/../lib/c++/v1/exception:81:
    /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 wchar_t *>>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>> &>'
        : __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 wchar_t *>>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>> &>' 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 wchar_t *>>>' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, std::__1::__map_value_compare<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>, std::__1::less<std::__1::basic_string<wchar_t>>, true>, std::__1::allocator<std::__1::pair<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>>' requested here
        typedef typename __base::__node_traits                 __node_traits;
                         ^
    ./boost/xpressive/regex_compiler.hpp:739:51: note: in instantiation of template class 'std::__1::map<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>, std::__1::less<std::__1::basic_string<wchar_t>>, std::__1::allocator<std::__1::pair<const std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>>' requested here
        std::map<string_type, basic_regex<BidiIter> > rules_;
                                                      ^
    ./boost/xpressive/basic_regex.hpp:193:16: note: in instantiation of template class 'boost::xpressive::regex_compiler<std::__1::__wrap_iter<const wchar_t *>, boost::xpressive::regex_traits<wchar_t, boost::xpressive::cpp_regex_traits<wchar_t>>, boost::xpressive::compiler_traits<boost::xpressive::regex_traits<wchar_t, boost::xpressive::cpp_regex_traits<wchar_t>>>>' requested here
            return regex_compiler<BidiIter>().compile(pat, flags);
                   ^
    libs/log/src/default_filter_factory.cpp:107:32: note: in instantiation of function template specialization 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *> >::compile<std::__1::basic_string<wchar_t> >' requested here
            regex_t rex = regex_t::compile(arg, regex_t::ECMAScript | regex_t::optimize);
                                   ^
    In file included from libs/log/src/default_filter_factory.cpp:16:
    In file included from /usr/bin/../lib/c++/v1/new:56:
    In file included from /usr/bin/../lib/c++/v1/exception:81:
    /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 wchar_t *>> &, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>> &>'
        : 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 wchar_t *>> &, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>> &>' 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 wchar_t *>>>' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, std::__1::__map_value_compare<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>, std::__1::less<std::__1::basic_string<wchar_t>>, true>, std::__1::allocator<std::__1::pair<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>>' requested here
        typedef typename __base::__node_traits                 __node_traits;
                         ^
    ./boost/xpressive/regex_compiler.hpp:739:51: note: in instantiation of template class 'std::__1::map<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>, std::__1::less<std::__1::basic_string<wchar_t>>, std::__1::allocator<std::__1::pair<const std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>>' requested here
        std::map<string_type, basic_regex<BidiIter> > rules_;
                                                      ^
    ./boost/xpressive/basic_regex.hpp:193:16: note: in instantiation of template class 'boost::xpressive::regex_compiler<std::__1::__wrap_iter<const wchar_t *>, boost::xpressive::regex_traits<wchar_t, boost::xpressive::cpp_regex_traits<wchar_t>>, boost::xpressive::compiler_traits<boost::xpressive::regex_traits<wchar_t, boost::xpressive::cpp_regex_traits<wchar_t>>>>' requested here
            return regex_compiler<BidiIter>().compile(pat, flags);
                   ^
    libs/log/src/default_filter_factory.cpp:107:32: note: in instantiation of function template specialization 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *> >::compile<std::__1::basic_string<wchar_t> >' requested here
            regex_t rex = regex_t::compile(arg, regex_t::ECMAScript | regex_t::optimize);
                                   ^
    In file included from libs/log/src/default_filter_factory.cpp:16:
    In file included from /usr/bin/../lib/c++/v1/new:56:
    In file included from /usr/bin/../lib/c++/v1/exception:81:
    /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 wchar_t *>>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>> &&>'
        : __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 wchar_t *>>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>> &&>' 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 wchar_t *>>>' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, std::__1::__map_value_compare<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>, std::__1::less<std::__1::basic_string<wchar_t>>, true>, std::__1::allocator<std::__1::pair<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>>' requested here
        typedef typename __base::__node_traits                 __node_traits;
                         ^
    ./boost/xpressive/regex_compiler.hpp:739:51: note: in instantiation of template class 'std::__1::map<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>, std::__1::less<std::__1::basic_string<wchar_t>>, std::__1::allocator<std::__1::pair<const std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>>' requested here
        std::map<string_type, basic_regex<BidiIter> > rules_;
                                                      ^
    ./boost/xpressive/basic_regex.hpp:193:16: note: in instantiation of template class 'boost::xpressive::regex_compiler<std::__1::__wrap_iter<const wchar_t *>, boost::xpressive::regex_traits<wchar_t, boost::xpressive::cpp_regex_traits<wchar_t>>, boost::xpressive::compiler_traits<boost::xpressive::regex_traits<wchar_t, boost::xpressive::cpp_regex_traits<wchar_t>>>>' requested here
            return regex_compiler<BidiIter>().compile(pat, flags);
                   ^
    libs/log/src/default_filter_factory.cpp:107:32: note: in instantiation of function template specialization 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *> >::compile<std::__1::basic_string<wchar_t> >' requested here
            regex_t rex = regex_t::compile(arg, regex_t::ECMAScript | regex_t::optimize);
                                   ^
    In file included from libs/log/src/default_filter_factory.cpp:16:
    In file included from /usr/bin/../lib/c++/v1/new:56:
    In file included from /usr/bin/../lib/c++/v1/exception:81:
    /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 wchar_t *>> &, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>> &&>'
        : 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 wchar_t *>> &, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>> &&>' 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 wchar_t *>>>' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>, std::__1::__map_value_compare<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>, std::__1::less<std::__1::basic_string<wchar_t>>, true>, std::__1::allocator<std::__1::pair<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>>' requested here
        typedef typename __base::__node_traits                 __node_traits;
                         ^
    ./boost/xpressive/regex_compiler.hpp:739:51: note: in instantiation of template class 'std::__1::map<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>, std::__1::less<std::__1::basic_string<wchar_t>>, std::__1::allocator<std::__1::pair<const std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>>' requested here
        std::map<string_type, basic_regex<BidiIter> > rules_;
                                                      ^
    ./boost/xpressive/basic_regex.hpp:193:16: note: in instantiation of template class 'boost::xpressive::regex_compiler<std::__1::__wrap_iter<const wchar_t *>, boost::xpressive::regex_traits<wchar_t, boost::xpressive::cpp_regex_traits<wchar_t>>, boost::xpressive::compiler_traits<boost::xpressive::regex_traits<wchar_t, boost::xpressive::cpp_regex_traits<wchar_t>>>>' requested here
            return regex_compiler<BidiIter>().compile(pat, flags);
                   ^
    libs/log/src/default_filter_factory.cpp:107:32: note: in instantiation of function template specialization 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *> >::compile<std::__1::basic_string<wchar_t> >' requested here
            regex_t rex = regex_t::compile(arg, regex_t::ECMAScript | regex_t::optimize);
                                   ^
    In file included from libs/log/src/default_filter_factory.cpp:22:
    In file included from ./boost/ref.hpp:10:
    In file included from ./boost/config.hpp:40:
    In file included from ./boost/config/select_stdlib_config.hpp:37:
    In file included from ./boost/config/no_tr1/utility.hpp:21:
    /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 wchar_t *>>>'
                       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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>, _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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>, >' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>, >' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>, >' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>, >' 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<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>>' 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)
                                     ^
    ./boost/xpressive/regex_compiler.hpp:739:51: note: in instantiation of template class 'std::__1::map<std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>, std::__1::less<std::__1::basic_string<wchar_t>>, std::__1::allocator<std::__1::pair<const std::__1::basic_string<wchar_t>, boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *>>>>>' requested here
        std::map<string_type, basic_regex<BidiIter> > rules_;
                                                      ^
    ./boost/xpressive/basic_regex.hpp:193:16: note: in instantiation of template class 'boost::xpressive::regex_compiler<std::__1::__wrap_iter<const wchar_t *>, boost::xpressive::regex_traits<wchar_t, boost::xpressive::cpp_regex_traits<wchar_t>>, boost::xpressive::compiler_traits<boost::xpressive::regex_traits<wchar_t, boost::xpressive::cpp_regex_traits<wchar_t>>>>' requested here
            return regex_compiler<BidiIter>().compile(pat, flags);
                   ^
    libs/log/src/default_filter_factory.cpp:107:32: note: in instantiation of function template specialization 'boost::xpressive::basic_regex<std::__1::__wrap_iter<const wchar_t *> >::compile<std::__1::basic_string<wchar_t> >' requested here
            regex_t rex = regex_t::compile(arg, regex_t::ECMAScript | regex_t::optimize);
                                   ^
    In file included from libs/log/src/default_filter_factory.cpp:22:
    In file included from ./boost/ref.hpp:10:
    In file included from ./boost/config.hpp:40:
    In file included from ./boost/config/select_stdlib_config.hpp:37:
    In file included from ./boost/config/no_tr1/utility.hpp:21:
    /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 wchar_t *>>>'
                       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 libs/log/src/default_filter_factory.cpp:22:
    In file included from ./boost/ref.hpp:10:
    In file included from ./boost/config.hpp:40:
    In file included from ./boost/config/select_stdlib_config.hpp:37:
    In file included from ./boost/config/no_tr1/utility.hpp:21:
    /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 wchar_t *>>>'
                                    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 libs/log/src/default_filter_factory.cpp:22:
    In file included from ./boost/ref.hpp:10:
    In file included from ./boost/config.hpp:40:
    In file included from ./boost/config/select_stdlib_config.hpp:37:
    In file included from ./boost/config/no_tr1/utility.hpp:21:
    /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 wchar_t *>>>'
                                         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)
                                     ^
    16 errors generated.
    ...skipped <pbin.v2/libs/log/build/clang-darwin-4.2.1/release/architecture-x86/link-static/threading-multi>libboost_log_setup.a(clean) for lack of <pbin.v2/libs/log/build/clang-darwin-4.2.1/release/architecture-x86/link-static/threading-multi>default_filter_factory.o...
    ...skipped <pbin.v2/libs/log/build/clang-darwin-4.2.1/release/architecture-x86/link-static/threading-multi>libboost_log_setup.a for lack of <pbin.v2/libs/log/build/clang-darwin-4.2.1/release/architecture-x86/link-static/threading-multi>default_filter_factory.o...
    ...skipped <pstage/lib>libboost_log_setup.a for lack of <pbin.v2/libs/log/build/clang-darwin-4.2.1/release/architecture-x86/link-static/threading-multi>libboost_log_setup.a...
    ...failed updating 10 targets...
    [r@r-mbp boost-trunk]$ 
    [\code]
    Note, libc++ is quite strict, which is nice, but a pita to compile against... still, it is the future of C++ support for Mac OS X.
    
     
  • Anonymous

    Anonymous - 2012-07-29

    I also use libc++, it compiles fine for me on both 1.49 and 1.50. This is the command that I use:
    ./b2 toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++" -build-type=complete -layout=tagged

     
  • Anonymous

    Anonymous - 2012-07-29

    forgot to add that I only have those libs available:
    /opt/local/lib/libboost_log-d.a
    /opt/local/lib/libboost_log-d.dylib
    /opt/local/lib/libboost_log-s.a
    /opt/local/lib/libboost_log-sd.a
    /opt/local/lib/libboost_log.a
    /opt/local/lib/libboost_log.dylib

    some of other type are failing.

     
  • Anonymous

    Anonymous - 2012-07-29

    Just to let you know that. Under 1.49, log compiles fine and link fine. But under 1.50, log compiles fine but link fails.

    #include <iostream>
    #include <string>
    // #include <tuple>
    #include <boost/log/trivial.hpp>
    #include <boost/spirit.hpp>
    int main(int, char*[])
    {
    
        // std::tuple<int, int ,char> mytuple;
        BOOST_LOG_TRIVIAL(trace) << "A trace severity message";
        BOOST_LOG_TRIVIAL(debug) << "A debug severity message";
        BOOST_LOG_TRIVIAL(info) << "An informational severity message";
        BOOST_LOG_TRIVIAL(warning) << "A warning severity message";
        BOOST_LOG_TRIVIAL(error) << "An error severity message";
        BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message";
    
        return 0;
    }[code]
    [code]Undefined symbols for architecture x86_64:
      "boost::log_mt_posix::basic_core<char>::open_record(boost::log_mt_posix::basic_attribute_set<char> const&)", referenced from:
          boost::log_mt_posix::basic_record<char> boost::log_mt_posix::sources::basic_logger<char, boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level>, boost::log_mt_posix::sources::multi_thread_model<boost::log_mt_posix::aux::light_rw_mutex> >::open_record_unlocked<boost::parameter::aux::tagged_argument<boost::log_mt_posix::keywords::tag::severity, boost::log_mt_posix::trivial::severity_level const> >(boost::parameter::aux::tagged_argument<boost::log_mt_posix::keywords::tag::severity, boost::log_mt_posix::trivial::severity_level const> const&) in main.o
      "boost::log_mt_posix::basic_core<char>::push_record(boost::log_mt_posix::basic_record<char> const&)", referenced from:
          boost::log_mt_posix::sources::basic_logger<char, boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level>, boost::log_mt_posix::sources::multi_thread_model<boost::log_mt_posix::aux::light_rw_mutex> >::push_record_unlocked(boost::log_mt_posix::basic_record<char> const&) in main.o
      "boost::log_mt_posix::basic_core<char>::get()", referenced from:
          boost::log_mt_posix::sources::basic_logger<char, boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level>, boost::log_mt_posix::sources::multi_thread_model<boost::log_mt_posix::aux::light_rw_mutex> >::basic_logger<boost::parameter::aux::tagged_argument<boost::log_mt_posix::keywords::tag::severity, boost::log_mt_posix::trivial::severity_level const> >(boost::parameter::aux::tagged_argument<boost::log_mt_posix::keywords::tag::severity, boost::log_mt_posix::trivial::severity_level const> const&) in main.o
          boost::log_mt_posix::sources::basic_logger<char, boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level>, boost::log_mt_posix::sources::multi_thread_model<boost::log_mt_posix::aux::light_rw_mutex> >::basic_logger(boost::log_mt_posix::sources::basic_logger<char, boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level>, boost::log_mt_posix::sources::multi_thread_model<boost::log_mt_posix::aux::light_rw_mutex> > const&) in main.o
      "boost::log_mt_posix::odr_violation::throw_(char const*, unsigned long, std::string const&)", referenced from:
          boost::log_mt_posix::sources::aux::logger_singleton<boost::log_mt_posix::trivial::logger>::init_instance() in main.o
      "boost::log_mt_posix::basic_slim_string<char, std::char_traits<char> >::basic_slim_string(char const*, unsigned long)", referenced from:
          boost::log_mt_posix::basic_attribute_set<char>::reference_proxy::operator=(boost::shared_ptr<boost::log_mt_posix::attribute> const&) const in main.o
      "boost::log_mt_posix::basic_slim_string<char, std::char_traits<char> >::basic_slim_string(std::string const&)", referenced from:
          std::pair<boost::log_mt_posix::basic_slim_string<char, std::char_traits<char> > const, boost::shared_ptr<boost::log_mt_posix::attribute> >::pair<std::string, boost::shared_ptr<boost::log_mt_posix::attribute> >(std::pair<std::string, boost::shared_ptr<boost::log_mt_posix::attribute> > const&) in main.o
      "boost::log_mt_posix::basic_slim_string<char, std::char_traits<char> >::~basic_slim_string()", referenced from:
          std::pair<boost::log_mt_posix::basic_slim_string<char, std::char_traits<char> > const, boost::shared_ptr<boost::log_mt_posix::attribute> >::~pair() in main.o
          std::pair<boost::log_mt_posix::basic_slim_string<char, std::char_traits<char> > const, boost::shared_ptr<boost::log_mt_posix::attribute> >::pair<std::string, boost::shared_ptr<boost::log_mt_posix::attribute> >(std::pair<std::string, boost::shared_ptr<boost::log_mt_posix::attribute> > const&) in main.o
          boost::log_mt_posix::basic_attribute_set<char>::reference_proxy::operator=(boost::shared_ptr<boost::log_mt_posix::attribute> const&) const in main.o
      "boost::log_mt_posix::basic_attribute_set<char>::insert(boost::log_mt_posix::basic_slim_string<char, std::char_traits<char> > const&, boost::shared_ptr<boost::log_mt_posix::attribute> const&)", referenced from:
          boost::log_mt_posix::basic_attribute_set<char>::insert(std::pair<boost::log_mt_posix::basic_slim_string<char, std::char_traits<char> > const, boost::shared_ptr<boost::log_mt_posix::attribute> > const&) in main.o
          boost::log_mt_posix::basic_attribute_set<char>::reference_proxy::operator=(boost::shared_ptr<boost::log_mt_posix::attribute> const&) const in main.o
      "boost::log_mt_posix::basic_attribute_set<char>::basic_attribute_set(boost::log_mt_posix::basic_attribute_set<char> const&)", referenced from:
          boost::log_mt_posix::sources::basic_logger<char, boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level>, boost::log_mt_posix::sources::multi_thread_model<boost::log_mt_posix::aux::light_rw_mutex> >::basic_logger(boost::log_mt_posix::sources::basic_logger<char, boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level>, boost::log_mt_posix::sources::multi_thread_model<boost::log_mt_posix::aux::light_rw_mutex> > const&) in main.o
      "boost::log_mt_posix::basic_attribute_set<char>::basic_attribute_set()", referenced from:
          boost::log_mt_posix::sources::basic_logger<char, boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level>, boost::log_mt_posix::sources::multi_thread_model<boost::log_mt_posix::aux::light_rw_mutex> >::basic_logger<boost::parameter::aux::tagged_argument<boost::log_mt_posix::keywords::tag::severity, boost::log_mt_posix::trivial::severity_level const> >(boost::parameter::aux::tagged_argument<boost::log_mt_posix::keywords::tag::severity, boost::log_mt_posix::trivial::severity_level const> const&) in main.o
      "boost::log_mt_posix::basic_attribute_set<char>::~basic_attribute_set()", referenced from:
          boost::log_mt_posix::sources::basic_logger<char, boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level>, boost::log_mt_posix::sources::multi_thread_model<boost::log_mt_posix::aux::light_rw_mutex> >::~basic_logger() in main.o
      "boost::log_mt_posix::aux::stream_provider<char>::release_compound(boost::log_mt_posix::aux::stream_provider<char>::stream_compound*)", referenced from:
          boost::log_mt_posix::aux::record_pump<boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level> >::auto_release::~auto_release() in main.o
      "boost::log_mt_posix::aux::stream_provider<char>::allocate_compound(boost::log_mt_posix::basic_record<char> const&)", referenced from:
          boost::log_mt_posix::aux::record_pump<boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level> >::record_pump(boost::log_mt_posix::sources::severity_logger_mt<boost::log_mt_posix::trivial::severity_level>&, boost::log_mt_posix::basic_record<char> const&) in main.o
      "boost::log_mt_posix::sources::aux::global_storage<char>::get_or_init(std::type_info const&, boost::function0<boost::shared_ptr<boost::log_mt_posix::sources::aux::logger_holder_base> > const&)", referenced from:
          boost::log_mt_posix::sources::aux::logger_singleton<boost::log_mt_posix::trivial::logger>::init_instance() in main.o
      "boost::log_mt_posix::sources::aux::get_severity_level()", referenced from:
          boost::log_mt_posix::sources::aux::severity_level<boost::log_mt_posix::trivial::severity_level>::dispatch(boost::log_mt_posix::type_dispatcher&) in main.o
          boost::log_mt_posix::sources::aux::severity_level<boost::log_mt_posix::trivial::severity_level>::detach_from_thread() in main.o
      "boost::log_mt_posix::sources::aux::set_severity_level(int)", referenced from:
          boost::log_mt_posix::sources::aux::severity_level<boost::log_mt_posix::trivial::severity_level>::set_value(boost::log_mt_posix::trivial::severity_level) in main.o
      "boost::log_mt_posix::trivial::aux::init()", referenced from:
          boost::log_mt_posix::trivial::logger::construct_logger() in main.o
      "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init(char const*, unsigned long)", referenced from:
          (anonymous namespace)::generic_error_category::message(int) const in libboost_system-mt-d.a(error_code.o)
      "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::assign(char const*)", referenced from:
          (anonymous namespace)::generic_error_category::message(int) const in libboost_system-mt-d.a(error_code.o)
      "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
          (anonymous namespace)::generic_error_category::message(int) const in libboost_system-mt-d.a(error_code.o)
      "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()", referenced from:
          (anonymous namespace)::generic_error_category::message(int) const in libboost_system-mt-d.a(error_code.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)[code]
    
     
  • Anonymous

    Anonymous - 2012-07-29

    arh, i am sorry, I didn't see you are compiling from the trunk. please ignore my previous comments.

     
  • Andrey Semashev

    Andrey Semashev - 2012-07-29

    @ reakin: This is a problem with clang (or libc++) or, less likely, with Boost.Xpressive. You should report it to the respective team.

    @ the other guy: I'm not sure what exactly is going on. Make sure you recompiled Boost.Log and the compilation succeeded. If it did, check out what symbols the library exports.

     
  • Rich E

    Rich E - 2012-07-29

    I think that clang or libc++ might very well be the one to blame, but I can't diagnose what the problem is here since this is the first time I've looked at Boost.Log.  Is there any way we can simplify or create an example that reproduces these errors, that can be discussed on the clang mailing list?  I've done this with other compile errors related to type_traits and found some bugs..

    I think my post above misses the first compile error to occur, so I have rebuild using (notice no libc++):

    ./b2 -q -a toolset=clang

    The first error to occur is:

    libs/log/src/core.cpp:370:19: error: use of overloaded operator '=' is ambiguous (with operand types 'filter_type' (aka 'light_function1<bool, const values_view_type &>') and 'const filter_type' (aka 'const light_function1<bool, const values_view_type &>'))
        pImpl->Filter = filter;
        ~~~~~~~~~~~~~ ^ ~~~~~~
    libs/log/src/core.cpp:579:33: note: in instantiation of member function 'boost::log2_mt_posix::basic_core<char>::set_filter' requested here
    template class BOOST_LOG_EXPORT basic_core< char >;
                                    ^
    ./boost/log/detail/light_function.hpp:171:32: note: candidate function
        BOOST_LOG_LWFUNCTION_NAME& operator= (BOOST_COPY_ASSIGN_REF(this_type) that)
                                   ^
    ./boost/log/detail/light_function.hpp:178:32: note: candidate function
        BOOST_LOG_LWFUNCTION_NAME& operator= (int p)
                                   ^
    libs/log/src/core.cpp:386:29: error: use of overloaded operator '=' is ambiguous (with operand types 'exception_handler_type' (aka 'light_function0<void>') and 'const exception_handler_type' (aka 'const light_function0<void>'))
        pImpl->ExceptionHandler = handler;
        ~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~
    libs/log/src/core.cpp:579:33: note: in instantiation of member function 'boost::log2_mt_posix::basic_core<char>::set_exception_handler' requested here
    template class BOOST_LOG_EXPORT basic_core< char >;
                                    ^
    ./boost/log/detail/light_function.hpp:332:32: note: candidate function
        BOOST_LOG_LWFUNCTION_NAME& operator= (BOOST_COPY_ASSIGN_REF(this_type) that)
                                   ^
    ./boost/log/detail/light_function.hpp:339:32: note: candidate function
        BOOST_LOG_LWFUNCTION_NAME& operator= (int p)
                                   ^
    libs/log/src/core.cpp:370:19: error: use of overloaded operator '=' is ambiguous (with operand types 'filter_type' (aka 'light_function1<bool, const values_view_type &>') and 'const filter_type' (aka 'const light_function1<bool, const values_view_type &>'))
        pImpl->Filter = filter;
        ~~~~~~~~~~~~~ ^ ~~~~~~
    libs/log/src/core.cpp:582:33: note: in instantiation of member function 'boost::log2_mt_posix::basic_core<wchar_t>::set_filter' requested here
    template class BOOST_LOG_EXPORT basic_core< wchar_t >;
                                    ^
    ./boost/log/detail/light_function.hpp:171:32: note: candidate function
        BOOST_LOG_LWFUNCTION_NAME& operator= (BOOST_COPY_ASSIGN_REF(this_type) that)
                                   ^
    ./boost/log/detail/light_function.hpp:178:32: note: candidate function
        BOOST_LOG_LWFUNCTION_NAME& operator= (int p)
                                   ^
    libs/log/src/core.cpp:386:29: error: use of overloaded operator '=' is ambiguous (with operand types 'exception_handler_type' (aka 'light_function0<void>') and 'const exception_handler_type' (aka 'const light_function0<void>'))
        pImpl->ExceptionHandler = handler;
        ~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~
    libs/log/src/core.cpp:582:33: note: in instantiation of member function 'boost::log2_mt_posix::basic_core<wchar_t>::set_exception_handler' requested here
    template class BOOST_LOG_EXPORT basic_core< wchar_t >;
                                    ^
    ./boost/log/detail/light_function.hpp:332:32: note: candidate function
        BOOST_LOG_LWFUNCTION_NAME& operator= (BOOST_COPY_ASSIGN_REF(this_type) that)
                                   ^
    ./boost/log/detail/light_function.hpp:339:32: note: candidate function
        BOOST_LOG_LWFUNCTION_NAME& operator= (int p)
                                   ^
    4 errors generated.
    

    I can successfully compile with the default toolset ('darwin'), but the rest of my toolchain is using clang, so I'm stuck trying to get it to work.

     
  • Andrey Semashev

    Andrey Semashev - 2012-07-30

    I'm not sure if it helps but I've committed a change that should resolve ambiquity if your compiler supports nullptr.

     
  • Rich E

    Rich E - 2012-08-01

    Oops, I accidentally left out the -std=c++11 flag too.  Thanks for the commit, but I should mentioned that I tried again without C++11 and it still fails with the same error "use of use of overloaded operator '=' is ambiguous".

    I actually found out I wasn't able to build boost::chrono, and I was able to before, so at that time I scratched my current copy of boost and started over from 1.50 - with success compiling Boost.Log.  So, I'm really not sure what the root of these errors were… sorry if it was a waste of time.  Thanks for the help, nonetheless!

    Cheers,
    Rich

     
  • Rich E

    Rich E - 2012-08-02

    Unfortunately I have to add that after trying to integrate Boost.Log into my project, I found that the binary supporting clang / libc++, whichI thought had successfully compiled, actually had missing symbols.  I recompiled and looked at the log and, although I used the '-q' parameter to b2, there are still quite a few errors in there (somewhat masked by the many warnings for unused parameters).  I don't think my linked .a lib is good, but I'll list the code and resulting errors here anway, if nothing more than a log what a user tried:

    #include <boost/log/common.hpp>
    #include <boost/log/utility/init/to_console.hpp>
    namespace logging = boost::log;
    namespace fmt = boost::log::formatters;
    namespace flt = boost::log::filters;
    namespace sinks = boost::log::sinks;
    namespace attrs = boost::log::attributes;
    namespace src = boost::log::sources;
    namespace keywords = boost::log::keywords;
    void test_logging()
    {
        // This is a simple tutorial/example of Boost.Log usage
        // The first thing we have to do to get using the library is
        // to set up the logging sinks - i.e. where the logs will be written to.
        logging::init_log_to_console(std::clog, keywords::format = "%TimeStamp%: %_%");
    }
    

    And linking error:

    r@Richards-MacBook-Pro xcode (master *)]$ /Applications/Developer/Xcode45-DP3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -v -arch i386 -isysroot /Applications/Developer/Xcode45-DP3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -L/Users/r/Library/Developer/Xcode/DerivedData/ControlsTestApp-byqxlttvvsxapgcrrbennbjlbmxh/Build/Products/Debug -F/Users/r/Library/Developer/Xcode/DerivedData/ControlsTestApp-byqxlttvvsxapgcrrbennbjlbmxh/Build/Products/Debug -filelist /Users/r/Library/Developer/Xcode/DerivedData/ControlsTestApp-byqxlttvvsxapgcrrbennbjlbmxh/Build/Intermediates/ControlsTestApp.build/Debug/ControlsTestApp-osx.build/Objects-normal/i386/ControlsTestAppDesktop.LinkFileList -mmacosx-version-min=10.7 /Volumes/ssd/code/cinder/rte/SControls/xcode/../lib/macosx/libboost_log.a /Volumes/ssd/code/cinder/rte/SControls/xcode/../../../cinder-notlion-es2/lib/libcinder_d.a -stdlib=libc++ -framework CoreAudio -framework Accelerate -framework AudioUnit -framework QuickTime -framework QTKit -framework Cocoa -framework OpenGL -weak_framework AVFoundation -weak_framework CoreMedia -framework Foundation -framework QuartzCore -weak_framework CoreVideo -framework AudioToolbox -o /Users/r/Library/Developer/Xcode/DerivedData/ControlsTestApp-byqxlttvvsxapgcrrbennbjlbmxh/Build/Products/Debug/ControlsTestAppDesktop.app/Contents/MacOS/ControlsTestAppDesktop
    Apple clang version 4.0 (tags/Apple/clang-421.10.53) (based on LLVM 3.1svn)
    Target: i386-apple-darwin12.0.0
    Thread model: posix
     "/Applications/Developer/Xcode45-DP3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch i386 -macosx_version_min 10.7.0 -syslibroot /Applications/Developer/Xcode45-DP3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -o /Users/r/Library/Developer/Xcode/DerivedData/ControlsTestApp-byqxlttvvsxapgcrrbennbjlbmxh/Build/Products/Debug/ControlsTestAppDesktop.app/Contents/MacOS/ControlsTestAppDesktop -lcrt1.10.6.o -L/Users/r/Library/Developer/Xcode/DerivedData/ControlsTestApp-byqxlttvvsxapgcrrbennbjlbmxh/Build/Products/Debug -filelist /Users/r/Library/Developer/Xcode/DerivedData/ControlsTestApp-byqxlttvvsxapgcrrbennbjlbmxh/Build/Intermediates/ControlsTestApp.build/Debug/ControlsTestApp-osx.build/Objects-normal/i386/ControlsTestAppDesktop.LinkFileList /Volumes/ssd/code/cinder/rte/SControls/xcode/../lib/macosx/libboost_log.a /Volumes/ssd/code/cinder/rte/SControls/xcode/../../../cinder-notlion-es2/lib/libcinder_d.a -framework CoreAudio -framework Accelerate -framework AudioUnit -framework QuickTime -framework QTKit -framework Cocoa -framework OpenGL -weak_framework AVFoundation -weak_framework CoreMedia -framework Foundation -framework QuartzCore -weak_framework CoreVideo -framework AudioToolbox -lc++ -lSystem /Applications/Developer/Xcode45-DP3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/4.0/lib/darwin/libclang_rt.eprintf.a /Applications/Developer/Xcode45-DP3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/4.0/lib/darwin/libclang_rt.osx.a -F/Users/r/Library/Developer/Xcode/DerivedData/ControlsTestApp-byqxlttvvsxapgcrrbennbjlbmxh/Build/Products/Debug
    Undefined symbols for architecture i386:
      "boost::log2_mt_posix::formatter_types<char>::formatter_type boost::log2_mt_posix::parse_formatter<char>(char const*, char const*)", referenced from:
          boost::log2_mt_posix::formatter_types<char>::formatter_type boost::log2_mt_posix::parse_formatter<char>(char const*) in ControlsTestApp.o
    ld: symbol(s) not found for architecture i386
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    For good measure:

    [r@Richards-MacBook-Pro xcode (master *)]$ lipo -info ../lib/macosx/libboost_log.a 
    input file ../lib/macosx/libboost_log.a is not a fat file
    Non-fat file: ../lib/macosx/libboost_log.a is architecture: i386
    

    I'm really looking forward to using this, even more looking forward to it being integrated within the official boost package, but sadly I have to result to a header-only logging library until I can resolve these compile/linking errors.

    However thank you again for all the help and such a thorough implementation!

    Cheers,
    Rich

     
  • Anonymous

    Anonymous - 2012-09-25

    Any news about this error ?

     
  • Andrey Semashev

    Andrey Semashev - 2012-09-25

    No. I'm not using Mac OS X, so unless someone provides patches I don't think this will be fixed any time soon.

     
  • Frederik Aalund

    Frederik Aalund - 2012-12-15

    Hi, I ran into the exact same error. I got a quick fix for people who does not use the regular expression syntax. Simply change the on_custom_relation member function in /libs/log/src/default_filter_factory.cpp like this:

        else if (rel == constants::matches_keyword())
        {
            assert(false);
            // Quick compile fix by uncommenting out the following.
            // Just don't hit this code path!
            /*
            typedef xpressive::basic_regex< typename string_type::const_iterator > regex_t;
            regex_t rex = regex_t::compile(arg, regex_t::ECMAScript | regex_t::optimize);
            return filter_type(log::filters::attr< string_type >(name, std::nothrow).matches(rex));
            */
            return filter_type();
        }
    

    This is a dirty fix but it works.

    The root of the issue seems to be with clang or libc++ like previously mentioned. Somehow, the

    std::is_nothrow_move_assignable<T>::value
    

    member variable is not defined when

    T=regex_t
    

    as defined in the memer function.

     
  • Anonymous

    Anonymous - 2013-03-04

    I've seen this particular missing symbols error when compiling on  OS X using clang, with the -std=c++11 -stdlib=libc++ flags.

    Interestingly, linking against the static .a libraries works fine; it's only linking against the dynamic .dylib libraries that's problematic.  I'm starting to look into this now, but thought I'd mention it here first just in case the solution was immediately obvious to someone.

     
  • Anonymous

    Anonymous - 2013-03-04

    Followup; it's some issue with the b2-driven dylib creation.  I was able to fix it manually by simply extracting the .o files from the .a files, and rebuilding the dylib.  e.g., for libboost_log.dylib:

    ar -x libboost_log.a
    clang++ -dynamiclib -std=c++11 *.o -o libboost_log.dylib -stdlib=libc++ -L/usr/local/lib -lboost_thread -lboost_system -lboost_filesystem

    Results in a dylib with all symbols present.  Repeating the same process with the setup library resolves the undefined symbols issue in my case when using the dylibs.  I am not sure yet where the b2 build is going sideways, but at least this gets me functional dynamic libraries.

     
  • Andrey Semashev

    Andrey Semashev - 2013-03-04

    That's not right. The library mangles symbols differently in static and dynamic builds. Most likely you are building your application without BOOST_ALL_DYN_LINK or BOOST_LOG_DYN_LINK defined and only have dylib.

     
  • Anonymous

    Anonymous - 2013-03-04

    Yes, you're absolutely correct.  Defining BOOST_LOG_DYN_LINK in the application resolved the linker issues.

    I am a bit curious, though; to my knowledge, the other boost libraries don't require something like this, which is what led me astray in the first place, so it was surprising to find it worked in this way.

    I'd guess others would be likely to fall into the same trap as well, as on at least a few platforms the dynamic libs will be built and installed by default, and will be preferred by the linker when found in the same location as a static library, so the default case in this case is the one that doesn't work properly.

     
  • Andrey Semashev

    Andrey Semashev - 2013-03-04

    Unlike other Boost libraries, Boost.Log is very sensitive to configuration errors. The difference in name mangling is intended to prevent possible errors when one part of the application is linked with static lib and the other one with dynamic lib. On Windows, for example, symbols are already mangled differently, even without the effort on the library part, so this behavior is not something special across the board.

    That said, it's worth documenting. You're not the first one to encounter this problem.

     

Log in to post a comment.