On Sun, 04 Mar 2012 18:14:28 +0100, Andrej Mitrovic <andrej.mitrov...@gmail.com> wrote:

On 3/4/12, Daniel Murphy <yebbl...@nospamgmail.com> wrote:
void f(Args...)(Args args) {
  foreach(i, T; Args)
  {
    static if (isSomeString!T) args[i] = toUTFz(args[i]);
  }
  needs_wchar_t(args);
}

toUTFz returns a pointer, the isSomeString checks if a type is a
string. IOW that will try to assign a pointer to a string.

But I don't understand the OPs requirements, what type does
'needs_wchar_t' take? A wchar*? A wchar**? Variadic arguments? Or
something else?

A variadic C function:
extern(C) void someFormatting(wchar_t* format, ...)

But I get some unexpected results.. wchar_t is defined as dchar on linux and wchar on windows, but it seems to only work with utf8.. Sending in wchar or dchar prints only the first characted as I guess it just see \0 at the next. I'll have to look at the original source in case it has some strange typedefs.

Reply via email to