Thread Previous • Date Previous • Date Next • Thread Next |
Martin Sandve Alnæs wrote:
2008/7/8 Garth N. Wells <gnw20@xxxxxxxxx>:Anders Logg wrote:On Thu, Jun 26, 2008 at 02:55:30PM +0200, Andy Ray Terrel wrote:You probably don't need the explicit keyword for copy constructors as done in Functions.h , PetscMatrix.h, uBlasMatrix.h, EpetraMatrix.h. This has the added effect of not being able to pass functions as arguments (perhaps that is bad but anyhow). Having just pulled this seemed to make my code a bit unhappy.You should not need to have a copy constructor to pass a Function as argument (at least by reference or as a pointer). Or are you passing it by value? That's probably not a good idea since it would involve copying the entire mesh as well as the vector of dofs.This has become an annoyance for me because I do want to pass a Function by value (I really do want a copy) and I can't do Function f(mesh); std::vector<Function> F; F.push_back(f); when explicit is used. GarthThen remove the explicit keyword. I may have added it in too many places. The point is to avoid strange situations leading to memory leaks and the like.
I removed it. I'm happy to see it added by default, and then removed as necessary.
Garth
Thread Previous • Date Previous • Date Next • Thread Next |