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

Reply via email to