When trying to pass a NumericVector* to a function expecting a
NumericVector&, Brent Kraczek's compiler gave him this:

> Compiling C++ (in optimized mode) ex3.C...
> ex3.C: In function 'int main(int, char**)':
> ex3.C:159: error: invalid conversion from 'NumericVector<double>*' to 
> 'unsigned 
> int'
> ex3.C:159: error:   initializing argument 1 of 
> 'NumericVector<T>::NumericVector(unsigned int) [with T = double]'
> ex3.C:159: error: cannot allocate an object of abstract type 'const 
> NumericVector<double>'
> /home/bkraczek/libmesh/include/solvers/system.h:45: note:   because the 
> following virtual functions are pure within 'const NumericVector<double>':
> /home/bkraczek/libmesh/include/numerics/numeric_vector.h:102: note:     void 
> NumericVector<T>::close() [with T = double]

The implicit conversion operators created by e.g. a constructor from
unsigned int might actually be a problem one of these days; any
objections to adding the explicit keyword to some of those constructor
declarations?  It's technically a backwards-incompatible API change,
but if there actually is anyone out there with the mojo to be doing
such implicit conversions on purpose, they aren't going to have any
problem fixing their code.
---
Roy

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to