On Thu, Oct 09, 2014 at 12:04:19PM +0100, Garth N. Wells wrote: > > > On Fri, 3 Oct, 2014 at 4:25 PM, Martin Sandve Alnæs > <[email protected]> wrote: > >Have you considered the C++ way with io streams? > > > > That would be my preferred approach, but it would break the current > interface. > >Or it might be solvable using C++11 variadic templates? > > > > Maybe, but I'd prefer a simpler solution if possible. > > >I'm not sure I understand the problem though. > > > In a nutshell, the use of ellipses in functions like dolfin_error > mean that we cannot overload the function, e.g. it doesn't appear > possible to do: > > void dolfin_error(std::string location, > std::string task, > std::string reason, ...); > > void dolfin_error(MPI_Comm mpi_comm, > std::string location, > std::string task, > std::string reason, ...);
Can't we just rename that second version that takes a communicator? Suggestions: _dolfin_error dolfin_error_mpi dolfin_error_comm -- Anders > Garth > >Martin > > > >3. okt. 2014 16:00 skrev "Garth N. Wells" <[email protected]> følgende: > >>We have some very C-like (and not C++ like) code in the DOLFIN > >>logging that uses ellipses to take a variable number of > >>arguments, e.g in dolfin/log/log.h. I'm trying to straighten out > >>logging in parallel by passing an MPI communicator to the log > >>functions, but I can't re-use function names because of the > >>ellipses. Does anyone know a better solution than using > >>ellipses, or have suggestions on getting around the problem? > >> > >>Garth > >> > >>_______________________________________________ > >>fenics mailing list > >>[email protected] > >>http://fenicsproject.org/mailman/listinfo/fenics > > _______________________________________________ > fenics mailing list > [email protected] > http://fenicsproject.org/mailman/listinfo/fenics _______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
