Bugs item #751269, was opened at 2003-06-09 03:47 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=107586&aid=751269&group_id=7586
Category: functional Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Mark Rodgers (mark_rodgers) Summary: Cannot compile octonion_test.cpp because of bug in sinc.hpp Initial Comment: octonion_test.cpp cannot be compiled neither gcc 3.2 nor Intel compiler because of the possible bug in boost/math/special_functions/sinc.hpp and in boost/math/special_functions/sinhc.hpp. Here are given the command line and the error (got from bjam build from “status” directory): g++ -c -Wall -ftemplate-depth-100 -g -O0 -fno- inline -I"../libs/math/test" - I "/home/users/vsysoltx/boost_loki/boost_1_30_0" - o "../libs/math/test/bin/octonion_test.test/gcc/bjam/archit ecture-native/debug-symbols-on/inlining-off/instruction- set-default/optimization-off/profiling-off/rtti-on/runtime-link- dynamic/shared-linkable-false/threading-single/vtable- thunks- default/octonion_test.o" "../libs/math/test/../octonion/oct onion_test.cpp" /home/users/vsysoltx/boost_loki/boost_1_30_0/boost/ma th/special_functions/sinc.hpp: In function `U<T> boost::math::sinc_pi(U<T>) [with T = float, U = boost::math::octonion]': ../libs/math/octonion/octonion_test.cpp:432: instantiated from here /home/users/vsysoltx/boost_loki/boost_1_30_0/boost/ma th/special_functions/sinc.hpp:109: no matching function for call to `abs(const boost::math::octonion<float>&)' <internal>:109: candidates are: int std::abs(int) /usr/include/c++/3.2/cstdlib:119: long int std::abs(long int) /usr/include/c++/3.2/cstdlib:142: long long int __gnu_cxx::abs(long long int) /usr/include/c++/3.2/cmath:87: double std::abs(double) /usr/include/c++/3.2/cmath:91: float std::abs (float) /usr/include/c++/3.2/cmath:95: long double std::abs(long double) The reason why compiler cannot find the appropriate boost::math::abs<T>(octonion<T>) definition is that here is used ::abs directive inside function. When this directive is used in the function definition, it hides the names from outermost namespaces. I don’t know why, I haven’t found this in standards, but that’s true both for gcc 3.2 and for Intel compiler. To compile these files I used a patch which is attached. In it the using directives are simply carried out of the function definition. That’s work with both compiler. For any questions you may contact me via [EMAIL PROTECTED] ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=107586&aid=751269&group_id=7586 ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ Boost-bugs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/boost-bugs _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost