id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 8416,Boost 1.53.0: Wave fails to build in C++11 mode,Arfrever.FTA@…,Hartmut Kaiser,"Wave in Boost 1.53.0 fails to build in C++11 mode. This bug does not occur in Boost 1.52.0. I use GCC 4.7.2. {{{ gcc.compile.c++ ../bin.v2/tools/wave/build/gcc-4.7/gentoorelease/link-static/pch-off/threading-multi/wavetool-on/cpp.o ""x86_64-pc-linux-gnu-g++"" -ftemplate-depth-128 -march=core2 -O2 -pipe -std=gnu++11 -finline-functions -Wno-inline -Wall -pthread -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_STATIC_LINK=1 -DBOOST_FILESYSTEM_STATIC_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_SYSTEM_STATIC_LINK=1 -DBOOST_THREAD_BUILD_LIB=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_LIB=1 -DBOOST_WAVE_SUPPORT_THREADING=0 -DDATE_TIME_INLINE -DNDEBUG -I"".."" -c -o ""../bin.v2/tools/wave/build/gcc-4.7/gentoorelease/link-static/pch-off/threading-multi/wavetool-on/cpp.o"" ""wave/build/../cpp.cpp"" In file included from ../boost/wave/cpp_context.hpp:37:0, from ../boost/wave.hpp:21, from wave/build/../cpp.cpp:26: ../boost/wave/util/cpp_iterator.hpp: In instantiation of ‘bool boost::wave::impl::pp_iterator_functor::emit_line_directive() [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >]’: ../boost/wave/util/cpp_iterator.hpp:539:9: required from ‘const result_type& boost::wave::impl::pp_iterator_functor::operator()() [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >; boost::wave::impl::pp_iterator_functor::result_type = boost::wave::cpplexer::lex_token<>]’ ../boost/wave/util/functor_input.hpp:124:13: required from ‘void boost::wave::util::functor_input::inner::advance_input() [with FunctorT = boost::wave::impl::pp_iterator_functor >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > > >]’ ../boost/wave/util/cpp_iterator.hpp:2568:13: required from ‘bool boost::wave::pp_iterator::force_include(const char*, bool) [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >]’ wave/build/../cpp.cpp:1110:68: required from here ../boost/wave/util/cpp_iterator.hpp:797:17: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘std::size_t {aka long unsigned int}’ [-Wformat] In file included from wave/build/../cpp.cpp:57:0: wave/build/../trace_macro_expansion.hpp: In instantiation of ‘bool trace_macro_expansion::emit_line_directive(const ContextT&, ContainerT&, const typename ContextT::token_type&) [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >; ContainerT = std::list, boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u> >; TokenT = boost::wave::cpplexer::lex_token<>; typename ContextT::token_type = boost::wave::cpplexer::lex_token<>]’: ../boost/wave/util/cpp_iterator.hpp:781:13: required from ‘bool boost::wave::impl::pp_iterator_functor::emit_line_directive() [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >]’ ../boost/wave/util/cpp_iterator.hpp:539:9: required from ‘const result_type& boost::wave::impl::pp_iterator_functor::operator()() [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >; boost::wave::impl::pp_iterator_functor::result_type = boost::wave::cpplexer::lex_token<>]’ ../boost/wave/util/functor_input.hpp:124:13: required from ‘void boost::wave::util::functor_input::inner::advance_input() [with FunctorT = boost::wave::impl::pp_iterator_functor >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > > >]’ ../boost/wave/util/cpp_iterator.hpp:2568:13: required from ‘bool boost::wave::pp_iterator::force_include(const char*, bool) [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >]’ wave/build/../cpp.cpp:1110:68: required from here wave/build/../trace_macro_expansion.hpp:624:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘std::size_t {aka long unsigned int}’ [-Wformat] In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/include/g++-v4/list:64:0, from ../boost/filesystem/path_traits.hpp:27, from ../boost/filesystem/path.hpp:25, from wave/build/../cpp.cpp:19: /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/include/g++-v4/bits/stl_list.h: In instantiation of ‘std::list<_Tp, _Alloc>::_Node* std::list<_Tp, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {}; _Tp = boost::wave::cpplexer::lex_token<>; _Alloc = boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u>; std::list<_Tp, _Alloc>::_Node = std::_List_node >]’: /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/include/g++-v4/bits/stl_list.h:1533:63: required from ‘void std::list<_Tp, _Alloc>::_M_insert(std::list<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {}; _Tp = boost::wave::cpplexer::lex_token<>; _Alloc = boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u>; std::list<_Tp, _Alloc>::iterator = std::_List_iterator >]’ /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/include/g++-v4/bits/stl_list.h:1007:11: required from ‘void std::list<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {}; _Tp = boost::wave::cpplexer::lex_token<>; _Alloc = boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u>]’ /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/include/g++-v4/bits/list.tcc:127:6: required from ‘void std::list<_Tp, _Alloc>::_M_default_append(std::list<_Tp, _Alloc>::size_type) [with _Tp = boost::wave::cpplexer::lex_token<>; _Alloc = boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u>; std::list<_Tp, _Alloc>::size_type = long unsigned int]’ /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/include/g++-v4/bits/list.tcc:149:2: required from ‘void std::list<_Tp, _Alloc>::resize(std::list<_Tp, _Alloc>::size_type) [with _Tp = boost::wave::cpplexer::lex_token<>; _Alloc = boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u>; std::list<_Tp, _Alloc>::size_type = long unsigned int]’ ../boost/wave/util/cpp_iterator.hpp:207:9: required from ‘bool boost::wave::util::add_macro_definition(ContextT&, std::string, bool, boost::wave::language_support) [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >; std::string = std::basic_string]’ ../boost/wave/cpp_context.hpp:204:27: required from ‘bool boost::wave::context::add_macro_definition(StringT, bool) [with StringT = std::basic_string; IteratorT = __gnu_cxx::__normal_iterator >; LexIteratorT = boost::wave::cpplexer::lex_iterator >; InputPolicyT = boost::wave::iteration_context_policies::load_file_to_string; HooksT = trace_macro_expansion >; DerivedT = boost::wave::this_type]’ wave/build/../cpp.cpp:983:46: required from here /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/include/g++-v4/bits/stl_list.h:503:8: error: no matching function for call to ‘boost::fast_pool_allocator >, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u>::construct(std::list, boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u> >::_Node*&)’ /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/include/g++-v4/bits/stl_list.h:503:8: note: candidate is: In file included from wave/build/../cpp.hpp:41:0, from wave/build/../cpp.cpp:15: ../boost/pool/pool_alloc.hpp:398:10: note: void boost::fast_pool_allocator::construct(boost::fast_pool_allocator::pointer, const value_type&) [with T = std::_List_node >; UserAllocator = boost::default_user_allocator_new_delete; Mutex = boost::details::pool::null_mutex; unsigned int NextSize = 32u; unsigned int MaxSize = 0u; boost::fast_pool_allocator::pointer = std::_List_node >*; boost::fast_pool_allocator::value_type = std::_List_node >] ../boost/pool/pool_alloc.hpp:398:10: note: candidate expects 2 arguments, 1 provided In file included from ../boost/wave/cpp_context.hpp:38:0, from ../boost/wave.hpp:21, from wave/build/../cpp.cpp:26: ../boost/wave/util/cpp_macromap.hpp: In instantiation of ‘bool boost::wave::util::macromap::expand_predefined_macro(const token_type&, ContainerT&) [with ContainerT = std::list, boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u> >; ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >; boost::wave::util::macromap::token_type = boost::wave::cpplexer::lex_token<>]’: ../boost/wave/util/cpp_macromap.hpp:1174:9: required from ‘bool boost::wave::util::macromap::expand_macro(ContainerT&, const token_type&, typename boost::wave::util::macromap::defined_macros_type::iterator, IteratorT&, const IteratorT&, bool&, bool, boost::wave::util::macromap::defined_macros_type*, ContainerT*) [with IteratorT = boost::wave::util::unput_queue_iterator >, boost::wave::cpplexer::lex_token<>, std::list, boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u> > >; ContainerT = std::list, boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u> >; ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >; boost::wave::util::macromap::token_type = boost::wave::cpplexer::lex_token<>; typename boost::wave::util::macromap::defined_macros_type::iterator = std::_Rb_tree_iterator, std::allocator, boost::wave::util::CowString > >, boost::intrusive_ptr, std::list, boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u> > > > > >; boost::wave::util::macromap::defined_macros_type = boost::wave::util::symbol_table, std::allocator, boost::wave::util::CowString > >, boost::wave::util::macro_definition, std::list, boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u> > > >; typename ContextT::token_sequence_type = std::list, boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u> >; typename ContextT::token_type = boost::wave::cpplexer::lex_token<>; typename ContextT::token_type::string_type = boost::wave::util::flex_string, std::allocator, boost::wave::util::CowString > >]’ ../boost/wave/util/cpp_macromap.hpp:636:17: required from ‘const typename ContextT::token_type& boost::wave::util::macromap::expand_tokensequence_worker(ContainerT&, boost::wave::util::unput_queue_iterator&, const boost::wave::util::unput_queue_iterator&, bool&, bool) [with IteratorT = boost::wave::cpplexer::lex_iterator >; ContainerT = std::list, boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u> >; ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >; typename ContextT::token_type = boost::wave::cpplexer::lex_token<>; typename ContextT::token_type = boost::wave::cpplexer::lex_token<>]’ ../boost/wave/util/cpp_macromap.hpp:550:46: required from ‘const typename ContextT::token_type& boost::wave::util::macromap::expand_tokensequence(IteratorT&, const IteratorT&, ContainerT&, ContainerT&, bool&, bool) [with IteratorT = boost::wave::cpplexer::lex_iterator >; ContainerT = std::list, boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u> >; ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >; typename ContextT::token_type = boost::wave::cpplexer::lex_token<>]’ ../boost/wave/cpp_context.hpp:384:43: required from ‘boost::wave::context::token_type boost::wave::context::expand_tokensequence(IteratorT2&, const IteratorT2&, boost::wave::context::token_sequence_type&, boost::wave::context::token_sequence_type&, bool&, bool) [with IteratorT2 = boost::wave::cpplexer::lex_iterator >; IteratorT = __gnu_cxx::__normal_iterator >; LexIteratorT = boost::wave::cpplexer::lex_iterator >; InputPolicyT = boost::wave::iteration_context_policies::load_file_to_string; HooksT = trace_macro_expansion >; DerivedT = boost::wave::this_type; boost::wave::context::token_type = boost::wave::cpplexer::lex_token<>; boost::wave::context::token_sequence_type = std::list, boost::fast_pool_allocator, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 32u, 0u> >; typename LexIteratorT::token_type = boost::wave::cpplexer::lex_token<>]’ ../boost/wave/util/cpp_iterator.hpp:863:13: required from ‘const result_type& boost::wave::impl::pp_iterator_functor::pp_token() [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >; boost::wave::impl::pp_iterator_functor::result_type = boost::wave::cpplexer::lex_token<>]’ ../boost/wave/util/cpp_iterator.hpp:633:25: required from ‘const result_type& boost::wave::impl::pp_iterator_functor::get_next_token() [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >; boost::wave::impl::pp_iterator_functor::result_type = boost::wave::cpplexer::lex_token<>]’ ../boost/wave/util/cpp_iterator.hpp:508:13: required from ‘const result_type& boost::wave::impl::pp_iterator_functor::operator()() [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >; boost::wave::impl::pp_iterator_functor::result_type = boost::wave::cpplexer::lex_token<>]’ ../boost/wave/util/functor_input.hpp:124:13: required from ‘void boost::wave::util::functor_input::inner::advance_input() [with FunctorT = boost::wave::impl::pp_iterator_functor >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > > >]’ ../boost/wave/util/cpp_iterator.hpp:2568:13: required from ‘bool boost::wave::pp_iterator::force_include(const char*, bool) [with ContextT = boost::wave::context<__gnu_cxx::__normal_iterator >, boost::wave::cpplexer::lex_iterator >, boost::wave::iteration_context_policies::load_file_to_string, trace_macro_expansion > >]’ wave/build/../cpp.cpp:1110:68: required from here ../boost/wave/util/cpp_macromap.hpp:1417:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘std::size_t {aka long unsigned int}’ [-Wformat] }}}",Bugs,closed,Boost 1.54.0,wave,Boost 1.53.0,Regression,fixed,,Arfrever.FTA@…