digitalmars.D.learn - Some compile time help..
- simendsjo (9/9) Mar 04 2012 Hi.
- Daniel Murphy (10/19) Mar 04 2012 With a loop?
- Andrej Mitrovic (6/13) Mar 04 2012 toUTFz returns a pointer, the isSomeString checks if a type is a
- simendsjo (10/23) Mar 04 2012 A variadic C function:
- Artur Skawina (2/13) Mar 05 2012 http://forum.dlang.org/thread/op.v94npikmx8p62v@simendsjo-desktop#post-m...
Hi.
I have the following code:
void f(Args...)(Args args) {
needs_wchar_t(args);
}
I want to loop over Args, and if it's a string of some type, I want to run
it through toUTFz. For all other values, I just want to push them as
normal.
How could I solve this?
Mar 04 2012
"simendsjo" <simendsjo gmail.com> wrote in message
news:op.wanctrbux8p62v simendsjo-desktop...
Hi.
I have the following code:
void f(Args...)(Args args) {
needs_wchar_t(args);
}
I want to loop over Args, and if it's a string of some type, I want to run
it through toUTFz. For all other values, I just want to push them as
normal.
How could I solve this?
With a loop?
void f(Args...)(Args args) {
foreach(i, T; Args)
{
static if (isSomeString!T) args[i] = toUTFz(args[i]);
}
needs_wchar_t(args);
}
Mar 04 2012
On 3/4/12, Daniel Murphy <yebblies 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?
Mar 04 2012
On Sun, 04 Mar 2012 18:14:28 +0100, Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:On 3/4/12, Daniel Murphy <yebblies nospamgmail.com> wrote: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.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?
Mar 04 2012
On 03/04/12 18:14, Andrej Mitrovic wrote:On 3/4/12, Daniel Murphy <yebblies nospamgmail.com> wrote:http://forum.dlang.org/thread/op.v94npikmx8p62v simendsjo-desktop#post-mailman.940.1330024934.20196.digitalmars-d-learn:40puremagic.comvoid 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.
Mar 05 2012









simendsjo <simendsjo gmail.com> 