issues compiling Boost 1.54 thread on AIX5.2
Any clues here?
Regards, Gert
vacpp.compile.c++
bin.v2/libs/thread/build/vacpp/debug/address-model-64/link-static/runtime-link-static/threading-multi/pthread/thread.o
xlC_r -c -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1
-DBOOST_THREAD_BUILD_LIB=1 -DBOOST_THREAD_DONT_USE_CHRONO
-DBOOST_THREAD_POSIX -qcpluscmt -qNOOPTimize -qnoinline -q64 -g -qfullpath
-qfuncsect -qeh -qrtti -I"." -o "bin
.v2/libs/thread/build/vacpp/debug/address-model-64/link-static/runtime-link-static/threading-multi/pthread/thread.o"
"libs/thread/src/pthread/thread.cpp"
"./boost/smart_ptr/shared_ptr.hpp", line 82.43: 1540-0403 (S) "template
Le 12/07/13 16:53, Gert a écrit :
Any clues here?
Regards, Gert
vacpp.compile.c++ bin.v2/libs/thread/build/vacpp/debug/address-model-64/link-static/runtime-link-static/threading-multi/pthread/thread.o
xlC_r -c -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -DBOOST_THREAD_BUILD_LIB=1 -DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_THREAD_POSIX -qcpluscmt -qNOOPTimize -qnoinline -q64 -g -qfullpath -qfuncsect -qeh -qrtti -I"." -o "bin .v2/libs/thread/build/vacpp/debug/address-model-64/link-static/runtime-link-static/threading-multi/pthread/thread.o" "libs/thread/src/pthread/thread.cpp"
"./boost/smart_ptr/shared_ptr.hpp", line 82.43: 1540-0403 (S) "template
struct boost::detail::sp_element " is already defined. "./boost/smart_ptr/shared_ptr.hpp", line 75.28: 1540-0425 (I) "sp_element " is defined on line 75 of "./boost/smart_ptr/shared_ptr.hpp". "./boost/smart_ptr/shared_ptr.hpp", line 131.43: 1540-0403 (S) "template struct boost::detail::sp_dereference " is already defined. "./boost/smart_ptr/shared_ptr.hpp", line 124.28: 1540-0425 (I) "sp_dereference " is defined on line 124 of "./boost/smart_ptr/shared_ptr.hpp". "./boost/smart_ptr/shared_ptr.hpp", line 156.43: 1540-0403 (S) "template struct boost::detail::sp_member_access " is already defined. "./boost/smart_ptr/shared_ptr.hpp", line 149.28: 1540-0425 (I) "sp_member_access " is defined on line 149 of "./boost/smart_ptr/shared_ptr.hpp". "./boost/smart_ptr/shared_ptr.hpp", line 181.43: 1540-0403 (S) "template struct boost::detail::sp_array_access " is already defined. "./boost/smart_ptr/shared_ptr.hpp", line 174.28: 1540-0425 (I) "sp_array_access " is defined on line 174 of "./boost/smart_ptr/shared_ptr.hpp". "./boost/thread/detail/async_func.hpp", line 94.58: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 166.54: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 231.50: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 291.46: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 346.42: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 396.38: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 441.34: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 481.30: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 516.26: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 546.22: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/cv_status.hpp", line 23.3: 1540-0219 (S) The call to "operator==" has no best match. "./boost/thread/cv_status.hpp", line 23.3: 1540-1229 (I) Argument number 1 is an rvalue of type "boost::cv_status::enum_type". "./boost/thread/cv_status.hpp", line 23.3: 1540-1229 (I) Argument number 2 is an rvalue of type "boost::cv_status::enum_type". "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is better than "builtin operator==(int, int)". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 1 to "int" uses "an integral promotion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 2 to "int" uses "an integral promotion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is better than "boost::operator==(self_type, enum_type)". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 1 to "boost::cv_status" uses the user-defined conversion "boost::cv_status::cv_status(enum_type)" followed by "an lvalue-to-rvalue transformatio n". ... ...
Hi, the concerned code template< class T > struct sp_element< T[] > { typedef T type; }; #if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 ) *template< class T, std::size_t N > struct sp_element< T[N] >** **{** ** typedef T type;** **};* #endif is conditionally included. Could you try to avoid the inclusion of template< class T, std::size_t N > struct sp_element< T[N] > { typedef T type; }; for the VACPP compiler. BTW, is this a regression of 1.54? Best, Vicente
Hello, I'm doing: string myString = (boost::format("%i") % 1.1).str(); I would expect that to either throw an error (preferred) or cast to an int and then format. I'm seeing a similar issue with %x and %o etc. Any thoughts? Rob Conde
I’m doing:
string myString = (boost::format(“%i”) % 1.1).str();
I would expect that to either throw an error (preferred) or cast to an int and then format. I’m seeing a similar issue with %x and %o etc. Any thoughts?
According to the Boost.Format documentation [1], the effect of the %i format specifier is to output its argument in a decimal base, not to force it to be an integer. There appears to be no way to specify in the format string that an argument should be coerced to be an integer, or that an exception should be thrown if it's not. The idea behind a strongly-typed formatting library is that the information about the types of the arguments is contained in, well, the types of the arguments, not in the format string. The format string is used to specify additional information that is not encoded in the type of the argument, like the base. Regards, Nate [1] http://www.boost.org/doc/libs/1_54_0/libs/format/doc/format.html#printf_dire...
Ok,I changed all occurences in smart_ptr/shared_ptr.hpp to #if (!defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 )) && !definded(_AIX) but unfortunately there are further compiler errors. The last boost version I used was 1.49 and this compiled w/o complaines. vacpp.compile.c++ bin.v2/libs/thread/build/vacpp/debug/address-model-64/link-static/runtime-link-static/threading-multi/pthread/thread.o xlC_r -c -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -DBOOST_THREAD_BUILD_LIB=1 -DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_THREAD_POSIX -qcpluscmt -qNOOPTimize -qnoinline -q64 -g -qfullpath -qfuncsect -qeh -qrtti -I"." -o "bin .v2/libs/thread/build/vacpp/debug/address-model-64/link-static/runtime-link-static/threading-multi/pthread/thread.o" "libs/thread/src/pthread/thread.cpp" "./boost/thread/detail/async_func.hpp", line 94.58: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 166.54: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 231.50: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 291.46: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 346.42: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 396.38: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 441.34: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 481.30: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 516.26: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/detail/async_func.hpp", line 546.22: 1540-0711 (S) Too few template arguments have been specified. "./boost/thread/cv_status.hpp", line 23.3: 1540-0219 (S) The call to "operator==" has no best match. "./boost/thread/cv_status.hpp", line 23.3: 1540-1229 (I) Argument number 1 is an rvalue of type "boost::cv_status::enum_type". "./boost/thread/cv_status.hpp", line 23.3: 1540-1229 (I) Argument number 2 is an rvalue of type "boost::cv_status::enum_type". "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is better than "builtin operator==(int, int)". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 1 to "int" uses "an integral promotion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 2 to "int" uses "an integral promotion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is better than "boost::operator==(self_type, enum_type)". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 1 to "boost::cv_status" uses the user-defined conversion "boost::cv_status::cv_status(enum_type)" followed by "an lvalue-to-rvalue transformatio n". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 2 to "boost::cv_status::enum_type" uses "the identity conversion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is better than "boost::operator==(enum_type, self_type)". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 1 to "boost::cv_status::enum_type" uses "the identity conversion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 2 to "boost::cv_status" uses the user-defined conversion "boost::cv_status::cv_status(enum_type)" followed by "an lvalue-to-rvalue transformatio n". "./boost/thread/cv_status.hpp", line 23.3: 1540-0219 (S) The call to "operator==" has no best match. "./boost/thread/cv_status.hpp", line 23.3: 1540-1229 (I) Argument number 1 is an rvalue of type "boost::cv_status::enum_type". "./boost/thread/cv_status.hpp", line 23.3: 1540-1228 (I) Argument number 2 is an lvalue of type "boost::cv_status::enum_type". "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is better than "builtin operator==(int, int)". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 1 to "int" uses "an integral promotion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 2 to "int" uses "an lvalue-to-rvalue transformation" followed by "an integral promotion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is better than "boost::operator==(self_type, enum_type)". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 1 to "boost::cv_status" uses the user-defined conversion "boost::cv_status::cv_status(enum_type)" followed by "an lvalue-to-rvalue transformatio n". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 2 to "boost::cv_status::enum_type" uses "an lvalue-to-rvalue transformation". "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is better than "boost::operator==(enum_type, self_type)". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 1 to "boost::cv_status::enum_type" uses "the identity conversion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 2 to "boost::cv_status" uses "an lvalue-to-rvalue transformation" followed by the user-defined conversion "boost::cv_status::cv_status(enum_type )" followed by "an lvalue-to-rvalue transformation". "./boost/thread/cv_status.hpp", line 23.3: 1540-0219 (S) The call to "operator==" has no best match. "./boost/thread/cv_status.hpp", line 23.3: 1540-1228 (I) Argument number 1 is an lvalue of type "boost::cv_status::enum_type". "./boost/thread/cv_status.hpp", line 23.3: 1540-1229 (I) Argument number 2 is an rvalue of type "boost::cv_status::enum_type". "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is better than "builtin operator==(int, int)". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 1 to "int" uses "an lvalue-to-rvalue transformation" followed by "an integral promotion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 2 to "int" uses "an integral promotion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is better than "boost::operator==(self_type, enum_type)". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 1 to "boost::cv_status" uses "an lvalue-to-rvalue transformation" followed by the user-defined conversion "boost::cv_status::cv_status(enum_type )" followed by "an lvalue-to-rvalue transformation". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 2 to "boost::cv_status::enum_type" uses "the identity conversion". "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is better than "boost::operator==(enum_type, self_type)". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 1 to "boost::cv_status::enum_type" uses "an lvalue-to-rvalue transformation". "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from argument number 2 to "boost::cv_status" uses the user-defined conversion "boost::cv_status::cv_status(enum_type)" followed by "an lvalue-to-rvalue transformation ... ... -- View this message in context: http://boost.2283326.n4.nabble.com/issues-compiling-Boost-1-54-thread-on-AIX... Sent from the Boost - Users mailing list archive at Nabble.com.
participants (4)
-
Gert
-
Nathan Ridge
-
Rob Conde
-
Vicente J. Botet Escriba