On Tuesday 26 May 2009 12:57:27 Anders Logg wrote: > On Tue, May 26, 2009 at 12:18:12PM +0200, Johan Hake wrote: > > On Tuesday 26 May 2009 11:36:52 Anders Logg wrote: > > > On Fri, May 22, 2009 at 07:52:09PM +0100, Garth N. Wells wrote: > > > > Anders Logg wrote: > > > > > On Sun, May 10, 2009 at 07:31:55PM +0100, Garth N. Wells wrote: > > > > >> Johan Hake wrote: > > > > >>> On Sunday 10 May 2009 12:20:24 Garth N. Wells wrote: > > > > >>>> DOLFIN wrote: > > > > >>>>> One or more new changesets pushed to the primary dolfin > > > > >>>>> repository. A short summary of the last three changesets is > > > > >>>>> included below. > > > > >>>>> > > > > >>>>> changeset: 6112:1b2b19ddacfa92c80d36dc78a5bb4829605a10c0 > > > > >>>>> tag: tip > > > > >>>>> user: Anders Logg <l...@simula.no> > > > > >>>>> date: Sun May 10 00:33:56 2009 +0200 > > > > >>>>> files: dolfin/common/Variable.cpp > > > > >>>>> dolfin/common/Variable.h dolfin/log/Logger.cpp > > > > >>>>> dolfin/log/Table.cpp dolfin/log/Table.h dolfin/log/log.cpp > > > > >>>>> dolfin/log/log.h > > > > >>>>> dolfin/parameter/NewParameters.cpp > > > > >>>>> dolfin/parameter/NewParameters.h sandbox/misc/cpp/main.cpp > > > > >>>>> description: Add str() to Variable interface (in C++) and > > > > >>>>> overload info() to accept a Variable, printing the output of > > > > >>>>> str(). > > > > >>>> > > > > >>>> The function > > > > >>>> > > > > >>>> void info(const Variable& variable); > > > > >>>> > > > > >>>> has caused a problem when compiling the Python wrappers, > > > > >>>> dolfin/swig/cpp_wrap.cc: In function ‘PyObject* > > > > >>>> _wrap_info(PyObject*, PyObject*)’: > > > > >>>> dolfin/swig/cpp_wrap.cc:27939: error: invalid conversion from > > > > >>>> ‘int’ to ‘PyObject*’ > > > > >>>> dolfin/swig/cpp_wrap.cc:27791: error: too many arguments to > > > > >>>> function ‘PyObject* _wrap_info__SWIG_0(PyObject*, PyObject*)’ > > > > >>>> dolfin/swig/cpp_wrap.cc:27939: error: at this point in file > > > > >>>> dolfin/swig/cpp_wrap.cc:27942: error: invalid conversion from > > > > >>>> ‘int’ to ‘PyObject*’ > > > > >>>> dolfin/swig/cpp_wrap.cc:27861: error: too many arguments to > > > > >>>> function ‘PyObject* _wrap_info__SWIG_1(PyObject*, PyObject*)’ > > > > >>>> dolfin/swig/cpp_wrap.cc:27942: error: at this point in file > > > > >>>> scons: *** [dolfin/swig/cpp_wrap.os] Error 1 > > > > >>>> > > > > >>>> From a quick inspection, I don't see what the problem is. > > > > >>> > > > > >>> I think swig has some problems with overloading functions with > > > > >>> variable number of parameters. > > > > >> > > > > >> I don't particularly like the functions with a variable number of > > > > >> parameters (those using the ellipses (...)). Can we avoid using > > > > >> them? Can we make use of ostringstream instead? > > > > > > > > > > We could do that to some extent, but the current implementation has > > > > > some uses: > > > > > > > > It looks like > > > > > > > > http://www.boost.org/doc/libs/1_39_0/libs/format/doc/format.html > > > > > > > > might preserve the syntax but avoid using the ellipses (...). > > > > > > > > Garth > > > > > > Yes, but it does not address any of the issues (1-3) below as far as I > > > can see. > > > > I cannot see what using boost::format for the input to the logging > > functions has anything to do with the issues listed under 1-3. > > > > We could change the signatures of the logging functions to take a > > boost::format instance instead of the (std::string msg, ...) that is now. > > > > Then we would have: > > > > debug(format("Jada %1, %2")%"bada"%100); > > > > instead of: > > > > debug("jada %s, %d","bada",100); > > Yes, but I don't see the point.
I do not have strong opinons about it but: <http://my.safaribooksonline.com/0321113586/ch98lev1sec1> <http://www.learncpp.com/cpp-tutorial/714-ellipses-and-why-to-avoid-them> Johan _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@fenics.org http://www.fenics.org/mailman/listinfo/dolfin-dev