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, ...);

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

Reply via email to