[Signals] Relationships to other libraries and terms
I've been trying to make sense of Boost.Signals, especially in terms of some other libraries I'm familiar with. Part of the problem is terminology, I think, e.g., callbacks, slots, and delegates (as in .NET, but also as used by some for bound member function pointers (e.g.,http://www.codeproject.com/cpp/FastDelegate.asp)). I'm hoping people will take a look at what follows, correct any errors they see, and maybe lend additional insight so that my understanding will be improved. We start with "callable entities" -- things that can be called, e.g., function pointers, function objects, bound member functions, etc. As I understand it: - A callback (function or object) is a callable entity - A slot in Boost.Signals is a callable entity - boost::bind and boost::lambda create callable entities. - A boost::function object stores a callable entity. We also have collections of callable entities: - A .NET delegate is a collection of 0 or more callable entities with a given signature. - A signal in Boost.Signals is a collection of 0 or more callable entities with signatures compatible with a given signature. Objects of these collection types are also callable entities: - When a Boost.Signals signal or a .NET delegate is called, it invokes the callable entities it contains. Is that correct? Also, does anybody know where the name "slot" comes from in this context? I've found this term to be a stumbling block for trying to understand this stuff. Thanks, Scott
In article <ecdar7$jm5$1@sea.gmane.org>, Scott Meyers wrote:
Also, does anybody know where the name "slot" comes from in this context? I've found this term to be a stumbling block for trying to understand this stuff.
Don't know if it is the first use of the term, but it has for many years been used by the Qt GUI library (the basis of KDE). Qt uses a custom C++ preprocessor to generate event-handling code, which treats 'signals', 'slots' and 'emit' as keywords. http://doc.trolltech.com/3.3/signalsandslots.html http://doc.trolltech.com/3.3/templates.html Will Watts
,struct mpl_::bool_<0> >::value". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp",
,mpl_::bool_<0> >". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp",
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > ,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > ,char,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<c...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/match_results.hpp",
Hi I'm trying to build boost with the vacpp (IBM Visual Age C++) compilers, but it's not even close to working. Something goes wrong almost immediately: xlc-C++-action bin/boost/libs/regex/build/libboost_regex.so/vacpp/debug/cregex.o "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 80.1: 1540-0062 (S) The incomplete class "gcc_3_2_wknd" must not be used as a qualifier. <and many more, see end of message for the rest of the error, for that file> I'm puzzled why it talks about some class called "gcc 3.2" when I'm doing nothing with gcc. If any of the boost wizzes could help me get this going, I'd appreciate it. Thank you, /Patrik Jonsson ... "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 80.1: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::has_boost_extensions_tag<boost::regex_traits<char,boost::cpp_regex_traits<char> line 80.1: 1540-0700 (I) The previous message was produced while processing "struct boost::re_detail::has_boost_extensions_tag<boost::regex_traits<char,boost::cpp_regex_traits<char> line 156.8: 1540-0700 (I) The previous message was produced while processing "struct boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char> line 73.7: 1540-0700 (I) The previous message was produced while processing "class boost::re_detail::basic_regex_formatter<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 553.16: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::regex_format_imp<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 170.14: 1540-0700 (I) The previous message was produced while processing "boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > >
::format<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
,boost::basic_regex<char,boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<char,std::char...".
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,boost::regex_traits<char,boost::cpp_regex_traits<char> ,char>(string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> , _Ptrit<char,long,const char *,const char &,char *,char &>, _Ptrit<char,long,const char *,co...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/libs/regex/build/../src/cregex.cpp",
,mpl_::bool_<0> >". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp",
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > ,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > ,char,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<c...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/match_results.hpp",
::format<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
,boost::basic_regex<char,boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<char,std::char...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_replace.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,boost::regex_traits<char,boost::cpp_regex_traits<char> ,char>(string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> , _Ptrit<char,long,const char *,const char &,char *,char &>, _Ptrit<char,long,const char *,co...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/libs/regex/build/../src/cregex.cpp",
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > ,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > ,char,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<c...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/match_results.hpp",
::format<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
,boost::basic_regex<char,boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<char,std::char...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_replace.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,boost::regex_traits<char,boost::cpp_regex_traits<char> ,char>(string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> , _Ptrit<char,long,const char *,const char &,char *,char &>, _Ptrit<char,long,const char *,co...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/libs/regex/build/../src/cregex.cpp",
"/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_replace.hpp", line 53.17: 1540-0700 (I) The previous message was produced while processing "boost::regex_replace<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 446.4: 1540-0700 (I) The previous message was produced while processing "boost::RegEx::Merge(const string &, const string &, bool, match_flag_type)". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 80.1: 1540-1269 (S) The template argument for the non-type template parameter of type "bool" must be an integral constant expression. "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 159.36: 1540-0700 (I) The previous message was produced while processing "struct boost::re_detail::has_boost_extensions_tag<boost::regex_traits<char,boost::cpp_regex_traits<char> line 156.8: 1540-0700 (I) The previous message was produced while processing "struct boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char> line 73.7: 1540-0700 (I) The previous message was produced while processing "class boost::re_detail::basic_regex_formatter<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 553.16: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::regex_format_imp<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 170.14: 1540-0700 (I) The previous message was produced while processing "boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > line 53.17: 1540-0700 (I) The previous message was produced while processing "boost::regex_replace<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 446.4: 1540-0700 (I) The previous message was produced while processing "boost::RegEx::Merge(const string &, const string &, bool, match_flag_type)". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 159.16: 1540-1122 (S) A non-type template parameter cannot have type "const bool". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp", line 76.21: 1540-0700 (I) The previous message was produced while processing "struct boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char> line 73.7: 1540-0700 (I) The previous message was produced while processing "class boost::re_detail::basic_regex_formatter<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 553.16: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::regex_format_imp<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 170.14: 1540-0700 (I) The previous message was produced while processing "boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > line 53.17: 1540-0700 (I) The previous message was produced while processing "boost::regex_replace<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 446.4: 1540-0700 (I) The previous message was produced while processing "boost::RegEx::Merge(const string &, const string &, bool, match_flag_type)".
,struct mpl_::bool_<0> >::value". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp",
,mpl_::bool_<0> >". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp",
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > ,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > ,char,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<c...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/match_results.hpp",
(I never saw the original msg go out, so I'm resending. Apologies if anyone gets it twice.) Hi I'm trying to build boost with the vacpp (IBM Visual Age C++) compilers, but it's not even close to working. Something goes wrong almost immediately: xlc-C++-action bin/boost/libs/regex/build/libboost_regex.so/vacpp/debug/cregex.o "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 80.1: 1540-0062 (S) The incomplete class "gcc_3_2_wknd" must not be used as a qualifier. <and many more, see end of message for the rest of the error, for that file> I'm puzzled why it talks about some class called "gcc 3.2" when I'm doing nothing with gcc. If any of the boost wizzes could help me get this going, I'd appreciate it. Thank you, /Patrik Jonsson ... "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 80.1: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::has_boost_extensions_tag<boost::regex_traits<char,boost::cpp_regex_traits<char> line 80.1: 1540-0700 (I) The previous message was produced while processing "struct boost::re_detail::has_boost_extensions_tag<boost::regex_traits<char,boost::cpp_regex_traits<char> line 156.8: 1540-0700 (I) The previous message was produced while processing "struct boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char> line 73.7: 1540-0700 (I) The previous message was produced while processing "class boost::re_detail::basic_regex_formatter<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 553.16: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::regex_format_imp<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 170.14: 1540-0700 (I) The previous message was produced while processing "boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > >
::format<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
,boost::basic_regex<char,boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<char,std::char...".
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,boost::regex_traits<char,boost::cpp_regex_traits<char> ,char>(string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> , _Ptrit<char,long,const char *,const char &,char *,char &>, _Ptrit<char,long,const char *,co...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/libs/regex/build/../src/cregex.cpp",
,mpl_::bool_<0> >". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp",
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > ,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > ,char,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<c...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/match_results.hpp",
::format<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
,boost::basic_regex<char,boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<char,std::char...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_replace.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,boost::regex_traits<char,boost::cpp_regex_traits<char> ,char>(string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> , _Ptrit<char,long,const char *,const char &,char *,char &>, _Ptrit<char,long,const char *,co...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/libs/regex/build/../src/cregex.cpp",
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > ,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > ,char,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<c...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/match_results.hpp",
::format<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
,boost::basic_regex<char,boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<char,std::char...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_replace.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,boost::regex_traits<char,boost::cpp_regex_traits<char> ,char>(string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> , _Ptrit<char,long,const char *,const char &,char *,char &>, _Ptrit<char,long,const char *,co...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/libs/regex/build/../src/cregex.cpp",
"/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_replace.hpp", line 53.17: 1540-0700 (I) The previous message was produced while processing "boost::regex_replace<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 446.4: 1540-0700 (I) The previous message was produced while processing "boost::RegEx::Merge(const string &, const string &, bool, match_flag_type)". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 80.1: 1540-1269 (S) The template argument for the non-type template parameter of type "bool" must be an integral constant expression. "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 159.36: 1540-0700 (I) The previous message was produced while processing "struct boost::re_detail::has_boost_extensions_tag<boost::regex_traits<char,boost::cpp_regex_traits<char> line 156.8: 1540-0700 (I) The previous message was produced while processing "struct boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char> line 73.7: 1540-0700 (I) The previous message was produced while processing "class boost::re_detail::basic_regex_formatter<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 553.16: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::regex_format_imp<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 170.14: 1540-0700 (I) The previous message was produced while processing "boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > line 53.17: 1540-0700 (I) The previous message was produced while processing "boost::regex_replace<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 446.4: 1540-0700 (I) The previous message was produced while processing "boost::RegEx::Merge(const string &, const string &, bool, match_flag_type)". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 159.16: 1540-1122 (S) A non-type template parameter cannot have type "const bool". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp", line 76.21: 1540-0700 (I) The previous message was produced while processing "struct boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char> line 73.7: 1540-0700 (I) The previous message was produced while processing "class boost::re_detail::basic_regex_formatter<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 553.16: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::regex_format_imp<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 170.14: 1540-0700 (I) The previous message was produced while processing "boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > line 53.17: 1540-0700 (I) The previous message was produced while processing "boost::regex_replace<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 446.4: 1540-0700 (I) The previous message was produced while processing "boost::RegEx::Merge(const string &, const string &, bool, match_flag_type)".
Patrik Jonsson wrote:
(I never saw the original msg go out, so I'm resending. Apologies if anyone gets it twice.)
We are seeing it twice. You might have better luck in getting some help if you include the name of the problematic library in the subject line <http://boost.org/more/discussion_policy.htm#effective>. -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim - grafikrobot/yahoo
,struct mpl_::bool_<0> >::value". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp",
,mpl_::bool_<0> >". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp",
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > ,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > ,char,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<c...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/match_results.hpp",
Hi I'm trying to build boost with the vacpp (IBM Visual Age C++) compilers, but the regex library won't build: xlc-C++-action bin/boost/libs/regex/build/libboost_regex.so/vacpp/debug/cregex.o "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 80.1: 1540-0062 (S) The incomplete class "gcc_3_2_wknd" must not be used as a qualifier. <see end of message for the rest of the error, for that file> I'm puzzled why it talks about some class called "gcc 3.2" when I'm doing nothing with gcc. If any of the boost wizzes could help me get this going, I'd appreciate it. This is with xlC 8.0.0.0 on an IBM SP5 running AIX5. Any hints for resolving this would be appreciated. Thank you, /Patrik Jonsson ... "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 80.1: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::has_boost_extensions_tag<boost::regex_traits<char,boost::cpp_regex_traits<char> line 80.1: 1540-0700 (I) The previous message was produced while processing "struct boost::re_detail::has_boost_extensions_tag<boost::regex_traits<char,boost::cpp_regex_traits<char> line 156.8: 1540-0700 (I) The previous message was produced while processing "struct boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char> line 73.7: 1540-0700 (I) The previous message was produced while processing "class boost::re_detail::basic_regex_formatter<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 553.16: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::regex_format_imp<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 170.14: 1540-0700 (I) The previous message was produced while processing "boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > >
::format<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
,boost::basic_regex<char,boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<char,std::char...".
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,boost::regex_traits<char,boost::cpp_regex_traits<char> ,char>(string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> , _Ptrit<char,long,const char *,const char &,char *,char &>, _Ptrit<char,long,const char *,co...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/libs/regex/build/../src/cregex.cpp",
,mpl_::bool_<0> >". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp",
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > ,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > ,char,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<c...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/match_results.hpp",
::format<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
,boost::basic_regex<char,boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<char,std::char...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_replace.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,boost::regex_traits<char,boost::cpp_regex_traits<char> ,char>(string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> , _Ptrit<char,long,const char *,const char &,char *,char &>, _Ptrit<char,long,const char *,co...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/libs/regex/build/../src/cregex.cpp",
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > ,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > ,char,boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<c...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/match_results.hpp",
::format<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
,boost::basic_regex<char,boost::regex_traits<char,boost::cpp_regex_traits<char>
(string_out_iterator<std::basic_string<char,std::char...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_replace.hpp",
,std::_Ptrit<char,long,const char *,const char &,char *,char &>,boost::regex_traits<char,boost::cpp_regex_traits<char> ,char>(string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> , _Ptrit<char,long,const char *,const char &,char *,char &>, _Ptrit<char,long,const char *,co...". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/libs/regex/build/../src/cregex.cpp",
"/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_replace.hpp", line 53.17: 1540-0700 (I) The previous message was produced while processing "boost::regex_replace<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 446.4: 1540-0700 (I) The previous message was produced while processing "boost::RegEx::Merge(const string &, const string &, bool, match_flag_type)". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 80.1: 1540-1269 (S) The template argument for the non-type template parameter of type "bool" must be an integral constant expression. "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 159.36: 1540-0700 (I) The previous message was produced while processing "struct boost::re_detail::has_boost_extensions_tag<boost::regex_traits<char,boost::cpp_regex_traits<char> line 156.8: 1540-0700 (I) The previous message was produced while processing "struct boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char> line 73.7: 1540-0700 (I) The previous message was produced while processing "class boost::re_detail::basic_regex_formatter<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 553.16: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::regex_format_imp<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 170.14: 1540-0700 (I) The previous message was produced while processing "boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > line 53.17: 1540-0700 (I) The previous message was produced while processing "boost::regex_replace<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 446.4: 1540-0700 (I) The previous message was produced while processing "boost::RegEx::Merge(const string &, const string &, bool, match_flag_type)". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_traits.hpp", line 159.16: 1540-1122 (S) A non-type template parameter cannot have type "const bool". "/project/projectdirs/mp363/sunrise/pbuild/boost_1_33_1/boost/regex/v4/regex_format.hpp", line 76.21: 1540-0700 (I) The previous message was produced while processing "struct boost::regex_traits_wrapper<boost::regex_traits<char,boost::cpp_regex_traits<char> line 73.7: 1540-0700 (I) The previous message was produced while processing "class boost::re_detail::basic_regex_formatter<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 553.16: 1540-0700 (I) The previous message was produced while processing "boost::re_detail::regex_format_imp<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 170.14: 1540-0700 (I) The previous message was produced while processing "boost::match_results<std::_Ptrit<char,long,const char *,const char &,char *,char &>,std::allocator<boost::sub_match<std::_Ptrit<char,long,const char *,const char &,char *,char &> > > line 53.17: 1540-0700 (I) The previous message was produced while processing "boost::regex_replace<boost::re_detail::string_out_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> line 446.4: 1540-0700 (I) The previous message was produced while processing "boost::RegEx::Merge(const string &, const string &, bool, match_flag_type)".
I'm puzzled why it talks about some class called "gcc 3.2" when I'm doing nothing with gcc. If any of the boost wizzes could help me get this going, I'd appreciate it.
This is with xlC 8.0.0.0 on an IBM SP5 running AIX5. Any hints for resolving this would be appreciated.
It relates to the use of BOOST_MPL_HAS_XXX_TRAIT_DEF which is apparently broken for this compiler (sadly we appear to have no one testing this compiler at present, so this has gone unnoticed). You could try looking at the details in boost/mpl/has_xxx.hpp and seeing if you can fix the core issue, or you could just modify regex_traits.hpp to work around the issue - take a look at the workarounds that are already in place for #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(55500)) (In two places) and apply these for your compiler as well. If you can let me have your compiler identification macro and current it's current value, then I'll apply fixes to cvs. HTH, John.
participants (5)
-
John Maddock
-
Patrik Jonsson
-
Rene Rivera
-
Scott Meyers
-
Will Watts