<div class="gmail_extra">On Mon, Nov 12, 2012 at 1:16 AM, Dominik Szczerba <span dir="ltr"><<a href="mailto:dominik@itis.ethz.ch" target="_blank">dominik@itis.ethz.ch</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":a48">Indeed. The problem was that the functions had to be virtual, so no<br>
static possible in C++.<br></div></blockquote><div><br></div><div>Can you check whether the function calling va_start needs to be static/non-virtual (Print), or just the function that you pass a va_list to (your VPrint)?</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":a48">
<div class="im"><br>
> It could be compiler-dependent. C++ is not my favorite language.<br>
<br>
</div>I am really curious, what is your favorite language?<br></div></blockquote><div><br></div><div>Heh, there are very interesting languages that are not terribly practical, at least for scientific computing. Haskell and Racket come to mind. Extremely expressive and extensible. There is a very new language called Julia that I think is a pleasure to work with, though I think it will have growing pains. Then there are the practical languages like C and Python. If I were to leave C for a systems language, I would not ask for object oriented features, I would ask for (1) a proper module system and (2) native multiple dispatch.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":a48">
<div class="im"><br>
> PetscSynchronizedVFPrintf is missing, but should be added.<br>
</div>> (...)<br>
<div class="im">> There is actually an implementation issue.<br>
<br>
</div>It is possible that I will have to resolve it (by contributing code),<br>
and therefore I may soon come back for some more pointers.<br></div></blockquote></div><br></div><div class="gmail_extra">The problem is that you _can't_ implement the V versions without vasprintf() or similar because you can't determine the required buffer size without exhausting the va_list.</div>