Hi David, 
 
Try undefining the macro BZ_MATH_FN_IN_NAMESPACE_STD in your <blitz/config.h> file.
The problem is that the configure script used to generate config.h for cygwin g++ is not appropriate
for MSVC 6.0.  So you will have to edit the config.h file by hand.  Even with this change, blitz may
not function properly under MSVC 6.0.  I know blitz compiles under MS VS.NET 2003, and there is
a config.h file provided for this compiler, but I'm not sure if older MS compilers can be made to work.
 
Regards, Julian C.
 

Dr. Julian C. Cummings
Staff Scientist, CACR/Caltech
(626) 395-2543
cummings@cacr.caltech.edu
 

-----Original Message-----
From: blitz-support-bounces@oonumerics.org [mailto:blitz-support-bounces@oonumerics.org] On Behalf Of David Smith
Sent: Monday, November 24, 2003 1:16 PM
To: blitz-support@oonumerics.org
Subject: [Blitz-support] Compiling Blitz programs with Intel compiler, MSVC 6.0

I wrote a program utilizing Blitz, and it compiled and ran just dandy on my Wintel PC using Cygwin/g++.  But I need to integrate it into our group's projects, which use MSVC 6.0.  I installed Intel's 30-day trial compiler and gave it a try.  It gives me a lot of error messages like this:
 
Compiling...
slab.cpp
C:\SRC\BLITZ++-0.7\blitz/mathfunc.h(45): error: namespace "std" has no member "labs"
      { return BZ_MATHFN_SCOPE(labs)((long)x); }
               ^
          detected during instantiation of class "blitz::_bz_abs<long>" at line 55
C:\SRC\BLITZ++-0.7\blitz/mathfunc.h(65): error: namespace "std" has no member "fabs"
      { return BZ_MATHFN_SCOPE(fabs)((float)x); }
               ^
...
          detected during instantiation of class "blitz::_bz_tanh<std::complex<long double>>" at line 2700
C:\SRC\BLITZ++-0.7\blitz/funcs.h(449): error: no instance of function template "std::abs" matches the argument list
            argument types are: (blitz::Fn_abs<int>::T_numtype1)
      { return BZ_MATHFN_SCOPE(abs)(a); }

 
What do I need to do to cure this?  My program compiled and ran OK under Cygwin even before I ran automake / make to set up the library.
 
My program starts out with
 
#include "stdafx.h"
#include <blitz/array.h>
#include <blitz/tinyvec-et.h>
#include <blitz/vecwhere.h>  // for 'where' function

 
As a matter of fact, I get the same complaints from the compiler if these #includes are the only thing in my source file.
 
  David Smith


Do you Yahoo!?
Free Pop-Up Blocker - Get it now