Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
September 03, 2004 stdarg format conflict | ||||
---|---|---|---|---|
| ||||
Can't use both std.stdio; and std.stdarg; Also as of 0.101 can't use std.stream with std.stdarg, because it also imports std.format; because of the conflicting va_args's reported by linker. Should format.d maybe private import std.stdarg? Would that help? I'm begining to dislike writef[ln] very much, all it has given me is trouble. I managed to remove all writefln's from my project and repleace them with the horrible printf, but i can't remove streams and i need stdarg. |
September 03, 2004 Re: stdarg format conflict | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ivan Senji | Sorry here is the example: <CODE> import std.stdio; import std.stdarg; void foo(int x, ...) { printf("%d arguments\n", _arguments.length); for (int i = 0; i < _arguments.length; i++) { _arguments[i].print(); if (_arguments[i] == typeid(int)) { int j = va_arg!(int)(_argptr); printf("\t%d\n", j); } else if (_arguments[i] == typeid(long)) { long j = va_arg!(long)(_argptr); printf("\t%lld\n", j); } else assert(0); } } int main(char[][] args) { writefln("Hello",4,6); return 1; } </CODE> the woraround is not to use stdarg but i like it better than: int j = *cast(int *)_argptr; _argptr += int.sizeof; |
September 03, 2004 Re: stdarg format conflict | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ivan Senji | In article <ch9q4s$1k9m$1@digitaldaemon.com>, Ivan Senji says... > >Can't use both >std.stdio; and >std.stdarg; > >Also as of 0.101 can't use std.stream with std.stdarg, because it also imports std.format; > >because of the conflicting va_args's reported by linker. > >Should format.d maybe private import std.stdarg? Would >that help? I don't know that it will help. This is a bug that I reported a while back, but it has not been fixed yet. The easiest way to fix it is to explicitly compile format.d and perhaps stdarg.d into your application. Sean |
September 06, 2004 Re: stdarg format conflict | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ivan Senji | In article <ch9q4s$1k9m$1@digitaldaemon.com>, Ivan Senji says... >Should format.d maybe private import std.stdarg? Yes. Moreover, /all/ imports of parts of Phobos should be private, unless specifically documented otherwise, and even then only if there's a very good reason for it. Jill |
September 06, 2004 Re: stdarg format conflict | ||||
---|---|---|---|---|
| ||||
Posted in reply to Arcane Jill | Absolutely; and import should /default/ to private ... "Arcane Jill" <Arcane_member@pathlink.com> wrote in message news:chh39k$149h$1@digitaldaemon.com... In article <ch9q4s$1k9m$1@digitaldaemon.com>, Ivan Senji says... >Should format.d maybe private import std.stdarg? Yes. Moreover, /all/ imports of parts of Phobos should be private, unless specifically documented otherwise, and even then only if there's a very good reason for it. Jill |
Copyright © 1999-2021 by the D Language Foundation