Where exactly are the compiler flags new to gcc 4.1.0 described.
I now understand that -ffriend-injection can be used with g++ to overcome
the new strictness about the scope of friends. However, I am seeing another
compile error in xplor-nih of the form...

cdsVector.cc: In function 'CDSVector<int, 0, CDS::DefaultAlloc>
CDSVector_Sl_int_Sg____pow__(CDSVector<int, 0, CDS::DefaultAlloc>*, const
float_type&)':
_cdsVector.cc:1173: warning: converting to 'int' from 'double'
/Users/howarth/Desktop/xplor-nih-2.12/CDSlib/cdsVector.hh: In member function
'CDSVectorBase<T, ALLOC>& CDSVectorBase<T, ALLOC>::operator*=(const T1&) [with
T1 = double, T = int, ALLOC = CDS::DefaultAlloc]':
_cdsVector.cc:1177:   instantiated from here
/Users/howarth/Desktop/xplor-nih-2.12/CDSlib/cdsVector.hh:242: warning:
converting to 'int' from 'double'
_cdsVector.cc: In function 'T sum(const CDSVector<T, 0, CDS::DefaultAlloc>&)
[with T = int]':
_cdsVector.cc:2426:   instantiated from here
_cdsVector.cc:913: warning: converting to 'int' from 'double'
_cdsVector.cc: In function 'float_type norm(const CDSVector<T, 0,
CDS::DefaultAlloc>&) [with T = double]':
_cdsVector.cc:6004:   instantiated from here
_cdsVector.cc:942: error: no matching function for call to 'norm(const
double&)'

which -ffriend-injection doesn't solve. It would be nice if gcc 4.1.0
clearly listed the new areas of c++ strictness and which compile flag
can be used to override the new behavior. Thanks in advance for any
clarifications.
                 Jack

Reply via email to