[ptr_container] metrowerks problems

Hi All, I haven't got a metrowerks compiler and can't fix the problems easily; so I *need* somebody to help me. The alterantive is that I will have to mark them as unusable. Please contact me if you would like to help and need directions. Thanks -Thorsten -- Thorsten Ottosen ---------------------------- www.dezide.com http://www.cs.aau.dk/index2.php?content=Research/mi www.boost.org www.open-std.org/JTC1/SC22/WG21/

Hi Thorsten, I'll look into these later this week (if nobody else does it until then). Cheers, Stefan Thorsten Ottosen wrote:
I haven't got a metrowerks compiler and can't fix the problems easily; so I *need* somebody to help me. The alterantive is that I will have to mark them as unusable.
Please contact me if you would like to help and need directions.

"Stefan Slapeta" <stefan@slapeta.com> wrote in message news:d4eg89$ta6$1@sea.gmane.org... | Hi Thorsten, | | I'll look into these later this week (if nobody else does it until then). | | Cheers, Thanks! The problem seems to be ptr_container/detail/static_move_ptr.hpp -Thorsten

Thorsten Ottosen wrote:
The problem seems to be ptr_container/detail/static_move_ptr.hpp
FYI, this problem seems to be non-trivial. I've not been able to track it down so far. The compiler doesn't provide any useful information about what it really complains about. Cheers, Stefan

"Stefan Slapeta" <stefan@slapeta.com> wrote in message news:d4vkpi$tle$1@sea.gmane.org... | Thorsten Ottosen wrote: | > | > The problem seems to be ptr_container/detail/static_move_ptr.hpp | > | | FYI, this problem seems to be non-trivial. I've not been able to track | it down so far. The compiler doesn't provide any useful information | about what it really complains about. Thanks for trying. This is nastier than I thought then. Are you using 9.3 or something? (The 8.X are not that great). -Thorsten

"Stefan Slapeta" <stefan@slapeta.com> wrote in message news:d4vkpi$tle$1@sea.gmane.org... | Thorsten Ottosen wrote: | > | > The problem seems to be ptr_container/detail/static_move_ptr.hpp | > | | FYI, this problem seems to be non-trivial. I've not been able to track | it down so far. The compiler doesn't provide any useful information | about what it really complains about. maybe you could make one desperate attack and simply remove all stuff of them form template<typename TT, typename DD> static_move_ptr( static_move_ptr<TT, DD>&, typename move_ptrs::enable_if_convertible< TT, T, static_move_ptr& >::type::type* = 0 ); and all that cant_move_from_const<....>::type = 0 Thanks Thorsten

Thorsten Ottosen wrote:
maybe you could make one desperate attack and simply remove all stuff of them form
[...] The problem is not related with move_ptr. There is one simple overloaded member function template that CW doesn't like - and I've no clue why! If you comment just the templated copy_clones_and_release in reversible_ptr_container.hpp, the misterious compiler error is gone. However, there are other issues then, most of which are related to the relational comparisons. I attach the current bjam output as a help. Cheers, Stefan ...found 1072 targets... ...updating 80 targets... MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\indirect_fun.test MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\indirect_fun.test\cw-9_4 MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\indirect_fun.test\cw-9_4\debug MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\indirect_fun.test\cw-9_4\debug\threading-multi cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\indirect_fun.test\cw-9_4\debug\threading-multi\indirect_fun.obj cw-Link-action ..\..\..\bin\boost\libs\ptr_container\test\indirect_fun.test\cw-9_4\debug\threading-multi\indirect_fun.exe ### mwld Linker Note: # Adding default library "MSL_All-DLL_x86_D.lib" to link order ### mwld Linker Note: # Adding default library "gdi32.lib" to link order ### mwld Linker Note: # Adding default library "kernel32.lib" to link order ### mwld Linker Note: # Adding default library "user32.lib" to link order ### mwld Linker Note: # Adding default library "MSL_All_x86.lib" to link order ### mwld Linker Note: # Including default library "MSL_All-DLL_x86_D.lib" ### mwld Linker Note: # Including library "libboost_unit_test_framework.lib" ### mwld Linker Note: # Including default library "kernel32.lib" MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\tut1.test MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\tut1.test\cw-9_4 MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\tut1.test\cw-9_4\debug MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\tut1.test\cw-9_4\debug\threading-multi cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\tut1.test\cw-9_4\debug\threading-multi\tut1.obj ### mwcc Compiler: # In: C:\Programme\Metrowerks\Codewarrior\MSL\MSL_C++\MSL_Common\Include\algorithm # From: tut1.cpp # ----------------- # 1034: if (*first1 < *first2) # Error: ^ # illegal operands 'const animal' < 'const animal' # (instantiating: 'boost::operator >=(const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<animal, std::deque<void *, std::allocator<void *>>>, boost::heap_clone_allocator> &, const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<animal, std::deque<void *, std::allocator<void *>>>, boost::heap_clone_allocator> &)') # (instantiating: 'boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<animal, std::deque<void *, std::allocator<void *>>>, boost::heap_clone_allocator>::operator <(const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<animal, std::deque<void *, std::allocator<void *>>>, boost::heap_clone_allocator> &) const') # (instantiating: 'std::lexicographical_compare<boost::ptr_container_detail::void_ptr_iterator<std::__deque_imp<void *, std::allocator<void *>, true>::generic_iterator<true>, const animal>, boost::ptr_container_detail::void_ptr_iterator<std::__deque_imp<void *, std::allocator<void *>, true>::generic_iterator<true>, const animal>>(boost::ptr_container_detail::void_ptr_iterator<std::__deque_imp<void *, std::allocator<void *>, true>::generic_iterator<true>, const animal>, boost::ptr_container_detail::void_ptr_iterator<std::__deque_imp<void *, std::allocator<void *>, true>::generic_iterator<true>, const animal>, boost::ptr_container_detail::void_ptr_iterator<std::__deque_imp<void *, std::allocator<void *>, true>::generic_iterator<true>, const animal>, boost::ptr_container_detail::void_ptr_iterator<std::__deque_imp<void *, std::allocator<void *>, true>::generic_iterator<true>, const animal>)') call "c:\Programme\Metrowerks\Codewarrior\Other Metrowerks Tools\Command Line Tools\cwenv.bat" -quiet set "ERRORLEVEL=" mwcc -c -lang c++ -maxerrors 5 -warnings on -maxwarnings 20 -nowraplines -g -O0 -inline off -cwd include -wchar_t on -warnings nounusedexpr,nounused -runtime dmd -RTTI on -iso_templates on "-I..\..\..\bin\boost\libs\ptr_container\test" -I- "-IC:\boost_regression\boost" -o "..\..\..\bin\boost\libs\ptr_container\test\tut1.test\cw-9_4\debug\threading-multi\tut1.obj" "tut1.cpp" ...failed cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\tut1.test\cw-9_4\debug\threading-multi\tut1.obj... ...skipped <@boost!libs!ptr_container!test\tut1.test\cw-9_4\debug\threading-multi>tut1.CMD for lack of <@boost!libs!ptr_container!test\tut1.test\cw-9_4\debug\threading-multi>tut1.obj... ...skipped <@boost!libs!ptr_container!test\tut1.test\cw-9_4\debug\threading-multi>tut1.exe for lack of <@boost!libs!ptr_container!test\tut1.test\cw-9_4\debug\threading-multi>tut1.CMD... MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\iterator_test.test MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\iterator_test.test\cw-9_4 MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\iterator_test.test\cw-9_4\debug MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\iterator_test.test\cw-9_4\debug\threading-multi cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\iterator_test.test\cw-9_4\debug\threading-multi\iterator_test.obj cw-Link-action ..\..\..\bin\boost\libs\ptr_container\test\iterator_test.test\cw-9_4\debug\threading-multi\iterator_test.exe ### mwld Linker Note: # Adding default library "MSL_All-DLL_x86_D.lib" to link order ### mwld Linker Note: # Adding default library "gdi32.lib" to link order ### mwld Linker Note: # Adding default library "kernel32.lib" to link order ### mwld Linker Note: # Adding default library "user32.lib" to link order ### mwld Linker Note: # Adding default library "MSL_All_x86.lib" to link order ### mwld Linker Note: # Including default library "MSL_All-DLL_x86_D.lib" ### mwld Linker Note: # Including library "libboost_unit_test_framework.lib" ### mwld Linker Note: # Including default library "kernel32.lib" MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\view_example.test MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\view_example.test\cw-9_4 MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\view_example.test\cw-9_4\debug MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\view_example.test\cw-9_4\debug\threading-multi cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\view_example.test\cw-9_4\debug\threading-multi\view_example.obj ### mwcc Compiler: # File: view_example.cpp # ------------------------- # 30: photon() : color( rand() ), # Error: ^ # undefined identifier 'rand' call "c:\Programme\Metrowerks\Codewarrior\Other Metrowerks Tools\Command Line Tools\cwenv.bat" -quiet set "ERRORLEVEL=" mwcc -c -lang c++ -maxerrors 5 -warnings on -maxwarnings 20 -nowraplines -g -O0 -inline off -cwd include -wchar_t on -warnings nounusedexpr,nounused -runtime dmd -RTTI on -iso_templates on "-I..\..\..\bin\boost\libs\ptr_container\test" -I- "-IC:\boost_regression\boost" -o "..\..\..\bin\boost\libs\ptr_container\test\view_example.test\cw-9_4\debug\threading-multi\view_example.obj" "view_example.cpp" ...failed cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\view_example.test\cw-9_4\debug\threading-multi\view_example.obj... ...skipped <@boost!libs!ptr_container!test\view_example.test\cw-9_4\debug\threading-multi>view_example.CMD for lack of <@boost!libs!ptr_container!test\view_example.test\cw-9_4\debug\threading-multi>view_example.obj... ...skipped <@boost!libs!ptr_container!test\view_example.test\cw-9_4\debug\threading-multi>view_example.exe for lack of <@boost!libs!ptr_container!test\view_example.test\cw-9_4\debug\threading-multi>view_example.CMD... cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\incomplete_type_test.test\cw-9_4\debug\threading-multi\incomplete_type_test.obj ### mwcc Compiler: # In: C:\Programme\Metrowerks\Codewarrior\MSL\MSL_C++\MSL_Common\Include\algorithm # From: incomplete_type_test.cpp # --------------------------------- # 1034: if (*first1 < *first2) # Error: ^ # illegal operands 'const Composite' < 'const Composite' # (instantiating: 'boost::operator >=(const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<Composite, std::vector<void *, std::allocator<void *>>>, boost::heap_clone_allocator> &, const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<Composite, std::vector<void *, std::allocator<void *>>>, boost::heap_clone_allocator> &)') # (instantiating: 'boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<Composite, std::vector<void *, std::allocator<void *>>>, boost::heap_clone_allocator>::operator <(const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<Composite, std::vector<void *, std::allocator<void *>>>, boost::heap_clone_allocator> &) const') # (instantiating: 'std::lexicographical_compare<boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const Composite>, boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const Composite>>(boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const Composite>, boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const Composite>, boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const Composite>, boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const Composite>)') call "c:\Programme\Metrowerks\Codewarrior\Other Metrowerks Tools\Command Line Tools\cwenv.bat" -quiet set "ERRORLEVEL=" mwcc -c -lang c++ -maxerrors 5 -warnings on -maxwarnings 20 -nowraplines -g -O0 -inline off -cwd include -wchar_t on -warnings nounusedexpr,nounused -runtime dmd -RTTI on -iso_templates on "-I..\..\..\bin\boost\libs\ptr_container\test" -I- "-IC:\boost_regression\boost" -o "..\..\..\bin\boost\libs\ptr_container\test\incomplete_type_test.test\cw-9_4\debug\threading-multi\incomplete_type_test.obj" "incomplete_type_test.cpp" ...failed cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\incomplete_type_test.test\cw-9_4\debug\threading-multi\incomplete_type_test.obj... ...skipped <@boost!libs!ptr_container!test\incomplete_type_test.test\cw-9_4\debug\threading-multi>incomplete_type_test.CMD for lack of <@boost!libs!ptr_container!test\incomplete_type_test.test\cw-9_4\debug\threading-multi>incomplete_type_test.obj... ...skipped <@boost!libs!ptr_container!test\incomplete_type_test.test\cw-9_4\debug\threading-multi>incomplete_type_test.exe for lack of <@boost!libs!ptr_container!test\incomplete_type_test.test\cw-9_4\debug\threading-multi>incomplete_type_test.CMD... MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\tree_test.test MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\tree_test.test\cw-9_4 MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\tree_test.test\cw-9_4\debug MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\tree_test.test\cw-9_4\debug\threading-multi cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\tree_test.test\cw-9_4\debug\threading-multi\tree_test.obj ### mwcc Compiler: # In: C:\Programme\Metrowerks\Codewarrior\MSL\MSL_C++\MSL_Common\Include\algorithm # From: tree_test.cpp # ---------------------- # 1034: if (*first1 < *first2) # Error: ^ # illegal operands 'const node' < 'const node' # (instantiating: 'boost::operator >=(const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<node, std::vector<void *, std::allocator<void *>>>, boost::heap_clone_allocator> &, const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<node, std::vector<void *, std::allocator<void *>>>, boost::heap_clone_allocator> &)') # (instantiating: 'boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<node, std::vector<void *, std::allocator<void *>>>, boost::heap_clone_allocator>::operator <(const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<node, std::vector<void *, std::allocator<void *>>>, boost::heap_clone_allocator> &) const') # (instantiating: 'std::lexicographical_compare<boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const node>, boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const node>>(boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const node>, boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const node>, boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const node>, boost::ptr_container_detail::void_ptr_iterator<std::__wrap_iterator<std::vector<void *, std::allocator<void *>>, void *const *>, const node>)') call "c:\Programme\Metrowerks\Codewarrior\Other Metrowerks Tools\Command Line Tools\cwenv.bat" -quiet set "ERRORLEVEL=" mwcc -c -lang c++ -maxerrors 5 -warnings on -maxwarnings 20 -nowraplines -g -O0 -inline off -cwd include -wchar_t on -warnings nounusedexpr,nounused -runtime dmd -RTTI on -iso_templates on "-I..\..\..\bin\boost\libs\ptr_container\test" -I- "-IC:\boost_regression\boost" -o "..\..\..\bin\boost\libs\ptr_container\test\tree_test.test\cw-9_4\debug\threading-multi\tree_test.obj" "tree_test.cpp" ...failed cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\tree_test.test\cw-9_4\debug\threading-multi\tree_test.obj... ...skipped <@boost!libs!ptr_container!test\tree_test.test\cw-9_4\debug\threading-multi>tree_test.CMD for lack of <@boost!libs!ptr_container!test\tree_test.test\cw-9_4\debug\threading-multi>tree_test.obj... ...skipped <@boost!libs!ptr_container!test\tree_test.test\cw-9_4\debug\threading-multi>tree_test.exe for lack of <@boost!libs!ptr_container!test\tree_test.test\cw-9_4\debug\threading-multi>tree_test.CMD... MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_array.test MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_array.test\cw-9_4 MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_array.test\cw-9_4\debug MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_array.test\cw-9_4\debug\threading-multi cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_array.test\cw-9_4\debug\threading-multi\ptr_array.obj ### mwcc Compiler: # In: C:\Programme\Metrowerks\Codewarrior\MSL\MSL_C++\MSL_Common\Include\algorithm # From: ptr_array.cpp # ---------------------- # 1034: if (*first1 < *first2) # Error: ^ # illegal operands 'const n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>' < 'const n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>' # (instantiating: 'boost::operator >=(const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>, boost::ptr_container_detail::ptr_array_impl<void *, 2, int>>, boost::heap_clone_allocator> &, const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>, boost::ptr_container_detail::ptr_array_impl<void *, 2, int>>, boost::heap_clone_allocator> &)') # (instantiating: 'boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>, boost::ptr_container_detail::ptr_array_impl<void *, 2, int>>, boost::heap_clone_allocator>::operator <(const boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>, boost::ptr_container_detail::ptr_array_impl<void *, 2, int>>, boost::heap_clone_allocator> &) const') # (instantiating: 'std::lexicographical_compare<boost::ptr_container_detail::void_ptr_iterator<void *const *, const n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>>, boost::ptr_container_detail::void_ptr_iterator<void *const *, const n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>>>(boost::ptr_container_detail::void_ptr_iterator<void *const *, const n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>>, boost::ptr_container_detail::void_ptr_iterator<void *const *, const n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>>, boost::ptr_container_detail::void_ptr_iterator<void *const *, const n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>>, boost::ptr_container_detail::void_ptr_iterator<void *const *, const n_ary_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2>>)') call "c:\Programme\Metrowerks\Codewarrior\Other Metrowerks Tools\Command Line Tools\cwenv.bat" -quiet set "ERRORLEVEL=" mwcc -c -lang c++ -maxerrors 5 -warnings on -maxwarnings 20 -nowraplines -g -O0 -inline off -cwd include -wchar_t on -warnings nounusedexpr,nounused -runtime dmd -RTTI on -iso_templates on "-I..\..\..\bin\boost\libs\ptr_container\test" -I- "-IC:\boost_regression\boost" -o "..\..\..\bin\boost\libs\ptr_container\test\ptr_array.test\cw-9_4\debug\threading-multi\ptr_array.obj" "ptr_array.cpp" ...failed cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_array.test\cw-9_4\debug\threading-multi\ptr_array.obj... ...skipped <@boost!libs!ptr_container!test\ptr_array.test\cw-9_4\debug\threading-multi>ptr_array.CMD for lack of <@boost!libs!ptr_container!test\ptr_array.test\cw-9_4\debug\threading-multi>ptr_array.obj... ...skipped <@boost!libs!ptr_container!test\ptr_array.test\cw-9_4\debug\threading-multi>ptr_array.exe for lack of <@boost!libs!ptr_container!test\ptr_array.test\cw-9_4\debug\threading-multi>ptr_array.CMD... MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_map.test MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_map.test\cw-9_4 MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_map.test\cw-9_4\debug MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_map.test\cw-9_4\debug\threading-multi cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_map.test\cw-9_4\debug\threading-multi\ptr_map.obj ### mwcc Compiler: # In: ..\..\..\boost\ptr_container\ptr_map_adapter.hpp # From: ptr_map.cpp # -------------------- # 268: BOOST_ASSERT( where != end() ); # Error: ^^^^^^^^^^^^ # function call '[boost::ptr_container_detail::ptr_map_adapter_base].end()' does not match # 'boost::end<...>(__T0 &)' # 'boost::end<...>(const __T0 &)' call "c:\Programme\Metrowerks\Codewarrior\Other Metrowerks Tools\Command Line Tools\cwenv.bat" -quiet set "ERRORLEVEL=" mwcc -c -lang c++ -maxerrors 5 -warnings on -maxwarnings 20 -nowraplines -g -O0 -inline off -cwd include -wchar_t on -warnings nounusedexpr,nounused -runtime dmd -RTTI on -iso_templates on "-I..\..\..\bin\boost\libs\ptr_container\test" -I- "-IC:\boost_regression\boost" -o "..\..\..\bin\boost\libs\ptr_container\test\ptr_map.test\cw-9_4\debug\threading-multi\ptr_map.obj" "ptr_map.cpp" ...failed cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_map.test\cw-9_4\debug\threading-multi\ptr_map.obj... ...skipped <@boost!libs!ptr_container!test\ptr_map.test\cw-9_4\debug\threading-multi>ptr_map.CMD for lack of <@boost!libs!ptr_container!test\ptr_map.test\cw-9_4\debug\threading-multi>ptr_map.obj... ...skipped <@boost!libs!ptr_container!test\ptr_map.test\cw-9_4\debug\threading-multi>ptr_map.exe for lack of <@boost!libs!ptr_container!test\ptr_map.test\cw-9_4\debug\threading-multi>ptr_map.CMD... MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_set.test MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_set.test\cw-9_4 MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_set.test\cw-9_4\debug MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_set.test\cw-9_4\debug\threading-multi cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_set.test\cw-9_4\debug\threading-multi\ptr_set.obj ### mwcc Compiler: # In: ..\..\..\boost\ptr_container\detail\reversible_ptr_container.hpp # From: ptr_set.cpp # -------------------- # 485: *where.base() = ptr.release(); // nothrow, commit # Error: ^ # illegal assignment to constant # (point of instantiation: 'test_set()') # (instantiating: 'boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::set_config<int, std::set<void *, boost::void_ptr_indirect_fun<std::less<int>, int, int>, std::allocator<void *>>>, boost::heap_clone_allocator>::replace(boost::ptr_container_detail::void_ptr_iterator<std::__tree_deleter<void *, boost::void_ptr_indirect_fun<std::less<int>, int, int>, std::allocator<void *>>::__generic_iterator<true>, int>, int *)') # (included from: # C:\boost_regression\boost\boost\test\unit_test_suite.hpp:22 # C:\boost_regression\boost\boost\test\unit_test.hpp:19 # C:\boost_regression\boost\libs\ptr_container\test\ptr_set.cpp:21) call "c:\Programme\Metrowerks\Codewarrior\Other Metrowerks Tools\Command Line Tools\cwenv.bat" -quiet set "ERRORLEVEL=" mwcc -c -lang c++ -maxerrors 5 -warnings on -maxwarnings 20 -nowraplines -g -O0 -inline off -cwd include -wchar_t on -warnings nounusedexpr,nounused -runtime dmd -RTTI on -iso_templates on "-I..\..\..\bin\boost\libs\ptr_container\test" -I- "-IC:\boost_regression\boost" -o "..\..\..\bin\boost\libs\ptr_container\test\ptr_set.test\cw-9_4\debug\threading-multi\ptr_set.obj" "ptr_set.cpp" ...failed cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_set.test\cw-9_4\debug\threading-multi\ptr_set.obj... ...skipped <@boost!libs!ptr_container!test\ptr_set.test\cw-9_4\debug\threading-multi>ptr_set.CMD for lack of <@boost!libs!ptr_container!test\ptr_set.test\cw-9_4\debug\threading-multi>ptr_set.obj... ...skipped <@boost!libs!ptr_container!test\ptr_set.test\cw-9_4\debug\threading-multi>ptr_set.exe for lack of <@boost!libs!ptr_container!test\ptr_set.test\cw-9_4\debug\threading-multi>ptr_set.CMD... MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_deque.test MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_deque.test\cw-9_4 MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_deque.test\cw-9_4\debug MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_deque.test\cw-9_4\debug\threading-multi cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_deque.test\cw-9_4\debug\threading-multi\ptr_deque.obj ### mwcc Compiler: # In: sequence_test_data.hpp # From: ptr_deque.cpp # ---------------------- # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_ptr_deque()') # (instantiating: 'reversible_container_test<boost::ptr_deque<boost::nullable<Value>, boost::heap_clone_allocator, std::allocator<void *>>, Value, Value>()') ### mwcc Compiler: # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_ptr_deque()') # (instantiating: 'reversible_container_test<boost::ptr_deque<boost::nullable<Base>, boost::heap_clone_allocator, std::allocator<void *>>, Base, Derived>()') ### mwcc Compiler: # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_ptr_deque()') # (instantiating: 'reversible_container_test<boost::ptr_deque<Value, boost::heap_clone_allocator, std::allocator<void *>>, Value, Value>()') ### mwcc Compiler: # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_ptr_deque()') # (instantiating: 'reversible_container_test<boost::ptr_deque<Base, boost::heap_clone_allocator, std::allocator<void *>>, Base, Derived>()') call "c:\Programme\Metrowerks\Codewarrior\Other Metrowerks Tools\Command Line Tools\cwenv.bat" -quiet set "ERRORLEVEL=" mwcc -c -lang c++ -maxerrors 5 -warnings on -maxwarnings 20 -nowraplines -g -O0 -inline off -cwd include -wchar_t on -warnings nounusedexpr,nounused -runtime dmd -RTTI on -iso_templates on "-I..\..\..\bin\boost\libs\ptr_container\test" -I- "-IC:\boost_regression\boost" -o "..\..\..\bin\boost\libs\ptr_container\test\ptr_deque.test\cw-9_4\debug\threading-multi\ptr_deque.obj" "ptr_deque.cpp" ...failed cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_deque.test\cw-9_4\debug\threading-multi\ptr_deque.obj... ...skipped <@boost!libs!ptr_container!test\ptr_deque.test\cw-9_4\debug\threading-multi>ptr_deque.CMD for lack of <@boost!libs!ptr_container!test\ptr_deque.test\cw-9_4\debug\threading-multi>ptr_deque.obj... ...skipped <@boost!libs!ptr_container!test\ptr_deque.test\cw-9_4\debug\threading-multi>ptr_deque.exe for lack of <@boost!libs!ptr_container!test\ptr_deque.test\cw-9_4\debug\threading-multi>ptr_deque.CMD... MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_list.test MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_list.test\cw-9_4 MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_list.test\cw-9_4\debug MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_list.test\cw-9_4\debug\threading-multi cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_list.test\cw-9_4\debug\threading-multi\ptr_list.obj ### mwcc Compiler: # In: sequence_test_data.hpp # From: ptr_list.cpp # --------------------- # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_list()') # (instantiating: 'reversible_container_test<boost::ptr_list<boost::nullable<Value>, boost::heap_clone_allocator, std::allocator<void *>>, Value, Value>()') ### mwcc Compiler: # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_list()') # (instantiating: 'reversible_container_test<boost::ptr_list<boost::nullable<Base>, boost::heap_clone_allocator, std::allocator<void *>>, Base, Derived>()') ### mwcc Compiler: # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_list()') # (instantiating: 'reversible_container_test<boost::ptr_list<Value, boost::heap_clone_allocator, std::allocator<void *>>, Value, Value>()') ### mwcc Compiler: # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_list()') # (instantiating: 'reversible_container_test<boost::ptr_list<Base, boost::heap_clone_allocator, std::allocator<void *>>, Base, Derived>()') call "c:\Programme\Metrowerks\Codewarrior\Other Metrowerks Tools\Command Line Tools\cwenv.bat" -quiet set "ERRORLEVEL=" mwcc -c -lang c++ -maxerrors 5 -warnings on -maxwarnings 20 -nowraplines -g -O0 -inline off -cwd include -wchar_t on -warnings nounusedexpr,nounused -runtime dmd -RTTI on -iso_templates on "-I..\..\..\bin\boost\libs\ptr_container\test" -I- "-IC:\boost_regression\boost" -o "..\..\..\bin\boost\libs\ptr_container\test\ptr_list.test\cw-9_4\debug\threading-multi\ptr_list.obj" "ptr_list.cpp" ...failed cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_list.test\cw-9_4\debug\threading-multi\ptr_list.obj... ...skipped <@boost!libs!ptr_container!test\ptr_list.test\cw-9_4\debug\threading-multi>ptr_list.CMD for lack of <@boost!libs!ptr_container!test\ptr_list.test\cw-9_4\debug\threading-multi>ptr_list.obj... ...skipped <@boost!libs!ptr_container!test\ptr_list.test\cw-9_4\debug\threading-multi>ptr_list.exe for lack of <@boost!libs!ptr_container!test\ptr_list.test\cw-9_4\debug\threading-multi>ptr_list.CMD... MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_vector.test MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_vector.test\cw-9_4 MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_vector.test\cw-9_4\debug MkDir1 ..\..\..\bin\boost\libs\ptr_container\test\ptr_vector.test\cw-9_4\debug\threading-multi cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_vector.test\cw-9_4\debug\threading-multi\ptr_vector.obj ### mwcc Compiler: # In: sequence_test_data.hpp # From: ptr_vector.cpp # ----------------------- # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_ptr_vector()') # (instantiating: 'reversible_container_test<boost::ptr_vector<boost::nullable<Value>, boost::heap_clone_allocator, std::allocator<void *>>, Value, Value>()') ### mwcc Compiler: # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_ptr_vector()') # (instantiating: 'reversible_container_test<boost::ptr_vector<boost::nullable<Base>, boost::heap_clone_allocator, std::allocator<void *>>, Base, Derived>()') ### mwcc Compiler: # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_ptr_vector()') # (instantiating: 'reversible_container_test<boost::ptr_vector<Value, boost::heap_clone_allocator, std::allocator<void *>>, Value, Value>()') ### mwcc Compiler: # 54: = is_null( c.begin() ); # Error: ^ # undefined identifier 'is_null' # (point of instantiation: 'test_ptr_vector()') # (instantiating: 'reversible_container_test<boost::ptr_vector<Base, boost::heap_clone_allocator, std::allocator<void *>>, Base, Derived>()') call "c:\Programme\Metrowerks\Codewarrior\Other Metrowerks Tools\Command Line Tools\cwenv.bat" -quiet set "ERRORLEVEL=" mwcc -c -lang c++ -maxerrors 5 -warnings on -maxwarnings 20 -nowraplines -g -O0 -inline off -cwd include -wchar_t on -warnings nounusedexpr,nounused -runtime dmd -RTTI on -iso_templates on "-I..\..\..\bin\boost\libs\ptr_container\test" -I- "-IC:\boost_regression\boost" -o "..\..\..\bin\boost\libs\ptr_container\test\ptr_vector.test\cw-9_4\debug\threading-multi\ptr_vector.obj" "ptr_vector.cpp" ...failed cw-C++-action ..\..\..\bin\boost\libs\ptr_container\test\ptr_vector.test\cw-9_4\debug\threading-multi\ptr_vector.obj... ...skipped <@boost!libs!ptr_container!test\ptr_vector.test\cw-9_4\debug\threading-multi>ptr_vector.CMD for lack of <@boost!libs!ptr_container!test\ptr_vector.test\cw-9_4\debug\threading-multi>ptr_vector.obj... ...skipped <@boost!libs!ptr_container!test\ptr_vector.test\cw-9_4\debug\threading-multi>ptr_vector.exe for lack of <@boost!libs!ptr_container!test\ptr_vector.test\cw-9_4\debug\threading-multi>ptr_vector.CMD... ...failed updating 10 targets... ...skipped 20 targets... ...updated 50 targets...

"Howard Hinnant" <hinnant@twcny.rr.com> wrote in message news:304705fde50507a9a9bc7dbac2aba447@twcny.rr.com... | On May 1, 2005, at 4:50 AM, Stefan Slapeta wrote: | | > # 1034: if (*first1 < *first2) | > # Error: ^ | > # illegal operands 'const animal' < 'const animal' | | So is a const animal less-than comparable? no. but I'm not instantiating any code that uses operator <() why is this code checked anyway, if not instantiating it? -Thorsten

On May 1, 2005, at 5:30 PM, Thorsten Ottosen wrote:
"Howard Hinnant" <hinnant@twcny.rr.com> wrote in message news:304705fde50507a9a9bc7dbac2aba447@twcny.rr.com... | On May 1, 2005, at 4:50 AM, Stefan Slapeta wrote: | | > # 1034: if (*first1 < *first2) | > # Error: ^ | > # illegal operands 'const animal' < 'const animal' | | So is a const animal less-than comparable?
no.
but I'm not instantiating any code that uses operator <()
why is this code checked anyway, if not instantiating it?
The error message is saying that boost::operator >= (ptr_container_detail::reversible_ptr_container< ... animal...>, ...) is being instantiated. If I were to guess, it would be some kind of concepts check. ptr_container_detail::reversible_ptr_container does derive from less_than_comparable. Why is ptr_container_detail::reversible_ptr_container< ... animal...> getting instantiated? -Howard

Howard Hinnant wrote:
The error message is saying that
boost::operator >= (ptr_container_detail::reversible_ptr_container< ... animal...>, ...)
is being instantiated.
If I were to guess, it would be some kind of concepts check. ptr_container_detail::reversible_ptr_container does derive from less_than_comparable.
[...] Actually, it's instantiated here: bool operator<( const reversible_ptr_container& r ) const // nothrow { return std::lexicographical_compare( begin(), end(), r.begin(), r.end() ); } which again is instantiated here: template <class T, class B = ::boost::detail::empty_base> struct less_than_comparable1 : B { friend bool operator>(const T& x, const T& y) { return y < x; } friend bool operator<=(const T& x, const T& y) { return !(y < x); } friend bool operator>=(const T& x, const T& y) { return !(x < y); } }; Stefan

"Stefan Slapeta" <stefan@slapeta.com> wrote in message news:d556tq$qdu$1@sea.gmane.org... | Howard Hinnant wrote: | | > | > The error message is saying that | > | > boost::operator >= (ptr_container_detail::reversible_ptr_container< ... | > animal...>, ...) | > | > is being instantiated. | Actually, it's instantiated here: | | bool operator<( const reversible_ptr_container& r ) const // nothrow | { | return std::lexicographical_compare( begin(), end(), r.begin(), | r.end() ); | } I'm certainly misunderstanding something...I thought instantiation was only supposed to happen if I use the thing, in this case bool operator<(...). what am I misunderstanding? -Throrsten

Thorsten Ottosen wrote:
I'm certainly misunderstanding something...I thought instantiation was only supposed to happen if I use the thing, in this case bool operator<(...).
what am I misunderstanding?
Why? operator < is no template ... it's "instantiated" in any case. what am _I_ misunderstanding? Stefan

On May 2, 2005, at 8:42 AM, Stefan Slapeta wrote:
Howard Hinnant wrote:
The error message is saying that boost::operator >= (ptr_container_detail::reversible_ptr_container< ... animal...>, ...) is being instantiated. If I were to guess, it would be some kind of concepts check. ptr_container_detail::reversible_ptr_container does derive from less_than_comparable.
[...]
Actually, it's instantiated here:
bool operator<( const reversible_ptr_container& r ) const // nothrow { return std::lexicographical_compare( begin(), end(), r.begin(), r.end() ); }
which again is instantiated here:
template <class T, class B = ::boost::detail::empty_base> struct less_than_comparable1 : B { friend bool operator>(const T& x, const T& y) { return y < x; } friend bool operator<=(const T& x, const T& y) { return !(y < x); } friend bool operator>=(const T& x, const T& y) { return !(x < y); } };
Inlined friend functions in class templates are instantiated when the enclosing class template is instantiated whether or not the friend is actually used: 14.5.3p5:
-5- When a function is defined in a friend function declaration in a class template, the function is defined at each instantiation of the class template. The function is defined even if it is never used. The same restrictions on multiple declarations and definitions which apply to non-template function declarations and definitions also apply to these implicit definitions. [Note: if the function definition is ill-formed for a given specialization of the enclosing class template, the program is ill-formed even if the function is never used. ]
This behavior will most likely change for C++0X: http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#329 -Howard

"Howard Hinnant" <hinnant@twcny.rr.com> wrote in message news:c924d1d6ba28298bccd97f6cb710b710@twcny.rr.com... | On May 2, 2005, at 8:42 AM, Stefan Slapeta wrote: | Inlined friend functions in class templates are instantiated when the | enclosing class template is instantiated whether or not the friend is | actually used: | | 14.5.3p5: Thanks. I'll write them manually then. -Thorsten

Howard Hinnant wrote:
So is a const animal less-than comparable?
No, I don't think so but I didn't investigate why this operator is actually instantiated. Much more interesting is why the existence of the member function template I mentioned before breaks CW completely. I have the strong opinion this is a compiler bug. Cheers, Stefan

"Stefan Slapeta" <stefan@slapeta.com> wrote in message news:d52503$8rc$1@sea.gmane.org... | Thorsten Ottosen wrote: | | > | > maybe you could make one desperate attack and simply remove | > all stuff of them form | > | [...] | | The problem is not related with move_ptr. ok, thanks! | There is one simple overloaded member function template that CW doesn't | like - and I've no clue why! If you comment just the templated | copy_clones_and_release in reversible_ptr_container.hpp, the misterious | compiler error is gone. ok, this is great news; thankyou for tracking this down. | However, there are other issues then, most of which are related to the | relational comparisons. | | I attach the current bjam output as a help. | | Cheers, Thanks. I think I can nail down most of them -Thorsten
participants (3)
-
Howard Hinnant
-
Stefan Slapeta
-
Thorsten Ottosen