[Trilinos-Users] Teuchos LAPACK wrapper and ISO C++

Dan Erik Petersen danerik at diku.dk
Tue Mar 18 08:14:55 MDT 2008


Hi everyone,

We're having a bit of trouble with the Teuchos LAPACK wrappers.

We're looking to call the LAPACK function

void Teuchos::LAPACK< OrdinalType, ScalarType >::TREVC( ... )

where OrdinalType = int and ScalarType = double

the problem arises with the third argument to TREVC : OrdinalType(*) 
(ScalarType *, ScalarType *) ptr2func
which we supply with "(int (*)(double*,double*))select"

where select has been initialized to be a vector of integers : int *  
select

Thus we cast this pointer to an object (int * select) to a pointer to  
a function (int(*)(double*,double*)). The problem is that this is not  
allowed by ISO C++ (we're compiling with -Werror -pedantic), and this  
throws an warning/error. Is there a way around this or an example  
anyone could provide such that we can continue using strict warnings  
on our compiled code?

The warning thrown by compilation is:
warning: ISO C++ forbids casting between pointer-to-function and  
pointer-to-object

Cheers,

Dan




-- 
Dan Erik Petersen, Ph.D. Student
Department of Computer Science, University of Copenhagen (DIKU)
Universitetsparken 1, 2100 Copenhagen, Denmark
Phone: +45 35 32 14 00, Fax: +45 35 32 14 01
E-mail: danerik at diku.dk  Home page: www.diku.dk/~danerik




More information about the Trilinos-Users mailing list