
Markus Schöpflin wrote:
Hello,
currently any_test and doc_any_hook fail on Tru64/CXX with the following errors:
cxx: Error: ../boost/intrusive/detail/any_node_and_algorithms.hpp, line 276: class template "boost::intrusive::any_algorithms<VoidPointer>" has no member "unlink_not_available_for_any_hooks" (notmember) any_algorithms<VoidPointer>::unlink_not_available_for_any_hooks(); -----------------------------------^ cxx: Error: ../boost/intrusive/detail/any_node_and_algorithms.hpp, line 283: class template "boost::intrusive::any_algorithms<VoidPointer>" has no member "swap_nodes_not_available_for_any_hooks" (notmember)
any_algorithms<VoidPointer>::swap_nodes_not_available_for_any_hooks(); -----------------------------------^
AFAICT this is the only EDG based compiler which tests in strict Ansi mode, adding -strict_ansi to the other EDG based compilers (acc for example) would probably lead to the same error.
Attached patch contains a proposed fix for this. It checks for __EDG__ and __STD_STRICT_ANSI to enable the fix and works for me locally.
The patch should replace the compile error by a link error, because in strict Ansi mode EDG doesn't allow you to refer to non-existing names.
OK to apply?
Please, go ahead. I just want to get a compilation error when this funcion is called, but with gcc 4.3 BOOST_STATIC_ASSERT((false)) is instantiated even if the function is called (other compilers just are fine). If this is changed to a linking error, is better than a run-time error. If you have any idea for this, let me know. Regards, Ion