Re: Assigning to char[N]

2012-02-01 Thread Andrej Mitrovic
OT: Just saw fill() by accident and something caught my eye: char[100] a; fill(a[], bla); // fail, ok int[100] a; fill(a[], bla); // works It could be a constraint issue. To bugzilla?

Re: More octal questions

2012-02-15 Thread Andrej Mitrovic
Where do you see those literals? I'm only seeing strings.

Re: Compiling Lua for D

2012-02-15 Thread Andrej Mitrovic
Have you tried https://github.com/JakobOvrum/LuaD ? It has binaries here: http://github.com/JakobOvrum/LuaD/tree/binaries

Re: Removing items from an Array

2012-02-17 Thread Andrej Mitrovic
foreach_reverse isn't going to help you much since AA's do not save the order of the keys. A quick workaround: http://pastebin.com/KkECqwUU Others probably know efficient ways to do this.

Compress spaces to one space

2012-02-21 Thread Andrej Mitrovic
Is there a Phobos function to compress all spaces to just one space in a string? E.g. foo bar becomes: foo bar

Re: Compress spaces to one space

2012-02-21 Thread Andrej Mitrovic
Oh cool, it even takes an optional parameter. Thanks! On 2/21/12, bearophile bearophileh...@lycos.com wrote: Andrej Mitrovic: Is there a Phobos function to compress all spaces to just one space in a string? E.g. foo bar becomes: foo bar import std.string; void main

Re: Examples of Windows services in D?

2012-02-21 Thread Andrej Mitrovic
N, it wasn't me. I keep having to tell this to people, it was taken from http://www.dsource.org/projects/bindings/wiki/WindowsApi but it often doesn't compile with the latest compiler version so I keep it updated inside my project.

Re: Compress spaces to one space

2012-02-21 Thread Andrej Mitrovic
On 2/21/12, bearophile bearophileh...@lycos.com wrote: Andrej Mitrovic: Is there a Phobos function to compress all spaces to just one space in a string? E.g. foo bar becomes: foo bar import std.string; void main() { assert( foo bar .squeeze() == fo

inout problems

2012-02-21 Thread Andrej Mitrovic
class Foo { this(int) inout { } Foo makeFoo() { return new Foo(1); } } void main() { } test.d(8): Error: cannot implicitly convert expression (new Foo(1)) of type inout(Foo) to test.Foo Is this a bug?

Re: inout problems

2012-02-21 Thread Andrej Mitrovic
Hmm nevermind. The param type had to be inout, but to do that the ctor itself has to be inout. Somehow I managed to put the inout specifier in the wrong place when testing, I did this: this(inout(void*) obj) { } inout which is not the same as this: this(inout(void*) obj) inout { } Damn specs.

Re: Cannot cast void* to arrays..?

2012-02-24 Thread Andrej Mitrovic
On 2/24/12, simendsjo simend...@gmail.com wrote: I don't get it. This gives me a dynamic array, not a static: char[1] a; auto b = cast(void*)a; auto c = (cast(char*)b)[0..1]; c.length = 10; // auch! You can do: char[1] c = (cast(char*)b)[0..1];

Re: Write struct to file

2012-02-25 Thread Andrej Mitrovic
Well first I'd recommend not allocating the struct on the heap. Then you can do: import std.stdio; struct nagger { string name; int age; double weight; string msg; } void main() { nagger lal; lal.name = name; lal.age= 23; lal.weight = 108.5; lal.msg

Re: Write struct to file

2012-02-25 Thread Andrej Mitrovic
On 2/25/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: This doesn't work for heap-allocated structs. Sorry my bad. .sizeof should always be set on Types and not variable names, because a struct pointer will have sizeof == size_t, whereas a simple struct variable will have sizeof equal

Re: Write struct to file

2012-02-25 Thread Andrej Mitrovic
On 2/25/12, Ali Çehreli acehr...@yahoo.com wrote: That passes because lal.name.ptr and dup.name.ptr have the same value. Maybe that wasn't the intention but the data is not really in the file. I'm not sure where you're getting that from: import std.stdio; struct nagger { string name;

Re: Write struct to file

2012-02-25 Thread Andrej Mitrovic
To be honest the C fread and fwrite aren't even necessary since you can do a rawRead and rawWrite instead.

Re: Write struct to file

2012-02-25 Thread Andrej Mitrovic
On 2/25/12, Ali Çehreli acehr...@yahoo.com wrote: But there is no way for fwrite to follow name.ptr to also write the characters that are in the string, right? Oh my I just got a big fat zero on the finals. You're absolutely right, what gets copied is the length and the pointer. The only reason

Re: Write struct to file

2012-02-25 Thread Andrej Mitrovic
On 2/26/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: allocated on the stack Sorry, I meant the data segment not the stack. That's -1 score for me.

Re: Write struct to file

2012-02-25 Thread Andrej Mitrovic
On 2/25/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: I'm not sure where you're getting that from: Let that be a classic lesson on what never to do. Here's a demonstration on how wrong I was: import std.stdio; struct Foo { char[] name; } void main(string[] args) { if (args[1

Re: Make alias parameter optional?

2012-02-25 Thread Andrej Mitrovic
On 2/25/12, Ali Çehreli acehr...@yahoo.com wrote: Apparently template parameters with default values need not be at the end of the template parameter list Well it would make variadic templates rather hard to use if this was illegal: void print(bool pretty = false, T...)(T args) { } void main()

Re: Write struct to file

2012-02-26 Thread Andrej Mitrovic
On 2/27/12, Ali Çehreli acehr...@yahoo.com wrote: D is awesome compared to C as it enables serializing/deserializing data with its generic programming and compile-time reflection features like this: http://dlang.org/traits.html#allMembers ae's json uses .tupleof, and does it in 40(!)*

Re: class templates and static if

2012-02-26 Thread Andrej Mitrovic
The immutable is not necessary, use: auto h = new Parser!(Type.request)(Hello world); Otherwise, if you really want to declare the type instead of infering it you can write: Parser!(Type.request) h = new Parser!(Type.request)(Hello world); You can also do: Parser!(Type.request) h; h = new

Re: Re: class templates and static if

2012-02-27 Thread Andrej Mitrovic
On 2/27/12, Tyler Jameson Little beatgam...@gmail.com wrote: That's why I thought this model would be so cool, because I could remove conditions from the generated code, and get rid of a lot of the conditionals. I think Nick Sabalausky talks about this concept (removing conditionals via

Re: Comparison of TickDuration and StopWatch.peek

2012-02-28 Thread Andrej Mitrovic
Also you can force property calls in your code if you compile with -property. Property notation has not been enforced so far, but might be in the future afaik.

Re: passing a string with the character as an argument

2012-02-29 Thread Andrej Mitrovic
On 2/29/12, James Miller ja...@aatch.net wrote: Today I Learned that windows has insane escaping. You won't have to worry about it for long: https://github.com/D-Programming-Language/phobos/pull/457

Re: Pretty fields string

2012-02-29 Thread Andrej Mitrovic
Just noticed there's an std.traits import missing. I hate how D silently ignores that FunctionTypeOf is left undefined.

Re: Pretty fields string

2012-02-29 Thread Andrej Mitrovic
On 2/29/12, Jacob Carlborg d...@me.com wrote: Seems like what I have in my serialization library Orange: Sweet. I was gonna take a look at Orange for just this purpose. Thanks.

Re: Pretty fields string

2012-02-29 Thread Andrej Mitrovic
On 2/29/12, Philippe Sigaud philippe.sig...@gmail.com wrote: Nice. What does it give for: - function overloads (PITA that)? - type aliase (alias int Int;)? - function aliases or member aliases? - inner templates (struct template, etc, not pure template as these are not allowed in a struct)?

Re: Pretty fields string

2012-02-29 Thread Andrej Mitrovic
On 2/29/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: Just noticed it doesn't work ok if there's a nested template declaration in a struct. It would say Error: cannot resolve type for t.temp(T). Correction: it was the unittest block that was problematic. I've filed it http

Re: GUI or more human readable -profile data?

2012-02-29 Thread Andrej Mitrovic
Boom: https://bitbucket.org/stqn/profiled I've never used it though.

Re: Regarding std.array.Appender

2012-02-29 Thread Andrej Mitrovic
Luckily you can always use alias this and overload opCatAssign. 'alias this' is a great tool for customizing APIs. :)

Re: Char * character and string

2012-03-02 Thread Andrej Mitrovic
SDL_LoadBMP is declared as: SDL_Surface *SDL_LoadBMP(const char *file); http://www.libsdl.org/cgi/docwiki.cgi/SDL_LoadBMP So you don't need a mutable char*. I'd recommend using Derelict since it already has all these prototypes declared properly.

Define .empty property for hashes?

2012-03-02 Thread Andrej Mitrovic
Is there a reason why there's no .empty property for hashes? std.array defines it for arrays, and range types must have it defined. But hashes are left out even though they define .length. This could be put in std.array: @property bool empty(T)(in T a) if (isAssociativeArray!T) { return

Re: Evaluating __FILE__ and __LINE__ of caller?

2012-03-02 Thread Andrej Mitrovic
Well, there is a way but it might wreak havoc on your object size since it will instantiate a lot of templates. Therefore it would be a good thing to only do it in debug mode: import std.string; class A { int opIndexDebug(int line = __LINE__, string file = __FILE__)(int x) { /*

Re: Evaluating __FILE__ and __LINE__ of caller?

2012-03-02 Thread Andrej Mitrovic
On 3/3/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: throw new Exception(format(%s: %s, file, line)); That format is unnecessary but anywho. :)

Re: Evaluating __FILE__ and __LINE__ of caller?

2012-03-02 Thread Andrej Mitrovic
Err wait a minute, that debug/else thing doesn't quite work well.. I thought it would.

Re: Evaluating __FILE__ and __LINE__ of caller?

2012-03-02 Thread Andrej Mitrovic
Ok this works: http://paste.pocoo.org/show/560103/

Re: Evaluating __FILE__ and __LINE__ of caller?

2012-03-02 Thread Andrej Mitrovic
On 3/3/12, Adam D. Ruppe destructiona...@gmail.com wrote: Since some time last year, it works on all functions, just use regular default parameters: Right, but what about template bloat? DMD doesn't seem to merge these templates. It can try to inline them, but it's very easy to break the

Re: Evaluating __FILE__ and __LINE__ of caller?

2012-03-02 Thread Andrej Mitrovic
Ah yeah, I forgot about those. int opIndex(int x, int line = __LINE__, string file = __FILE__) Tada. I overcomplicated.

Re: Evaluating __FILE__ and __LINE__ of caller?

2012-03-03 Thread Andrej Mitrovic
On 3/3/12, bioinfornatics bioinfornat...@fedoraproject.org wrote: I think __LINE__ is size_t not int I'd love to see a 2_147_483_648 line source file! :D

Re: Evaluating __FILE__ and __LINE__ of caller?

2012-03-03 Thread Andrej Mitrovic
On 3/3/12, H. S. Teoh hst...@quickfur.ath.cx wrote: Of course, with D's templates, CTFE, and compile-time introspection capabilities, I can't imagine when autogeneration would actually be required, but we're talking about hypotheticals here. It can be if you need an OOP D binding to a C/C++

How to avoid code duplication in static if branches?

2012-03-03 Thread Andrej Mitrovic
import std.stdio; void check() { writeln(check); } struct Foo { bool isTrue = true; } struct Bar { } void test(T)(T t) { static if (is(T == Foo)) { if (t.isTrue) check(); } else { check(); } } void main() { Foo foo; Bar bar;

Re: Evaluating __FILE__ and __LINE__ of caller?

2012-03-03 Thread Andrej Mitrovic
Ok, well a quick search shows socket.d:132 needs fixing. Also there's two versioned out enforces in object_.d which use int line = __LINE__. Interestingly, earlier versions of Phobos used int a lot (I guess in pre-64bit compatible D days). I'm also seeing int used in Derelict, pspemu, plot2kill

Re: How to avoid code duplication in static if branches?

2012-03-03 Thread Andrej Mitrovic
You're right it should be able do that dead-code elimination thing. Slipped my mind. :) On 3/4/12, Daniel Murphy yebbl...@nospamgmail.com wrote: Andrej Mitrovic andrej.mitrov...@gmail.com wrote in message news:mailman.364.1330825349.24984.digitalmars-d-le...@puremagic.com... import std.stdio

Re: Some compile time help..

2012-03-04 Thread Andrej Mitrovic
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

Translate for chars to strings

2012-03-05 Thread Andrej Mitrovic
There's a really useful function 'translate' in std.string, used like this: __gshared dchar[dchar] MangleTable; shared static this() { MangleTable = [ '*':'p', // ptr '':'r', // reference '':'L', // left angle '':'R', // right angle ' ':'_',

Re: Translate for chars to strings

2012-03-06 Thread Andrej Mitrovic
Hmm somehow I missed that. Thanks. On 3/6/12, Ali Çehreli acehr...@yahoo.com wrote: On 03/05/2012 04:32 PM, Andrej Mitrovic wrote: There's a really useful function 'translate' in std.string, used like this: __gshared dchar[dchar] MangleTable; shared static this() { MangleTable

Re: Array of derived class objects?

2012-03-06 Thread Andrej Mitrovic
You can use a cast as a workaround: A[] objs = [cast(A)new B, new C ]; This bug has been around for a while, the first time I've seen it mentioned was in the second code snippet in this blog post: http://klickverbot.at/blog/2010/11/announcing-d-support-in-swig/

Re: htod - const

2012-03-06 Thread Andrej Mitrovic
On 3/6/12, Trass3r u...@known.com wrote: Sadly, using regular expressions is much more efficient. Do you have some script that does that and sorta works? I've tried others (e.g. dstep but couldn't get LLVM to compile unfortunately..).

Re: 0 negative loop condition bug or misunderstanding on my part

2012-03-07 Thread Andrej Mitrovic
On 3/7/12, Timon Gehr timon.g...@gmx.ch wrote: The problem is not that length is unsigned. The issue is the implicit conversion from signed to unsigned. You bet. I've once had this hard to spot bug where I've used a call that was something like max(0, min(10, expression)), and this ended up

Re: Method invocation -- why it's not working?

2012-03-07 Thread Andrej Mitrovic
Don't worry Ali I thought the same thing. :p

Re: Can I do an or in a version block?

2012-03-08 Thread Andrej Mitrovic
I find it interesting that having this feature would somehow enable abuse, yet we can do so much abuse already with CTFE, templates, and string mixins. One large pain in the ass is to pass an integral at compile time. I sometimes wish to use a syntax such as version(foo == 5) {}. The only

Re: Can I do an or in a version block?

2012-03-09 Thread Andrej Mitrovic
I have a felling people will end up abusing string mixins to generate version statements, and this will be the exact opposite effect Walter wanted. The same story goes for unittests which can't be independently ran to get a list of all failing unittests, and so people are coming up with their own

Re: Method invocation -- why it's not working?

2012-03-09 Thread Andrej Mitrovic
Yeah I understood it as a general concept as well. Probably many people did. Why doesn't Andrei chime in?

Re: Method invocation -- why it's not working?

2012-03-09 Thread Andrej Mitrovic
On 3/9/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: Yeah I understood it as a general concept as well. Probably many people did. Why doesn't Andrei chime in? Btw, we all know how much Andrei loves generics so why the heck would he care about arrays so much to only give them special

Re: Method invocation -- why it's not working?

2012-03-10 Thread Andrej Mitrovic
On 3/9/12, Timon Gehr timon.g...@gmx.ch wrote: On 03/09/2012 07:08 PM, Andrej Mitrovic wrote: Yeah I understood it as a general concept as well. Probably many people did. Why doesn't Andrei chime in? I think he does not read the D.learn newsgroup. Ah poo. This is like East Berlin in here

inout/const issue: assignments to field not allowed if field initializer present

2012-03-10 Thread Andrej Mitrovic
It took me a while to narrow this down: struct Foo { int val = int.init; this(inout(int) nval) inout { this.val = nval; } } test.d(18): Error: cannot modify const/immutable/inout expression this.val Is there any special reason why this should be disallowed? I mean the same

Parse issue

2012-03-11 Thread Andrej Mitrovic
Does anyone else think this should be fixed? import std.conv; void main() { string s1 = ff; string s2 = 0xff; assert(parse!uint(s1, 16) == 0xff); // ok assert(parse!uint(s2, 16) == 0xff); // fail, it's 0 } I think parse should pop the first two characters if the string starts

Re: Parse issue

2012-03-11 Thread Andrej Mitrovic
Side-note, it would be nice if std.string.isNumeric took a radix. :)

Re: Parse issue

2012-03-11 Thread Andrej Mitrovic
Thanks for the input. http://d.puremagic.com/issues/show_bug.cgi?id=7692

Re: Why doesn't this have a length?

2012-03-12 Thread Andrej Mitrovic
On 3/12/12, Ali Çehreli acehr...@yahoo.com wrote: Let's please also see the exact error message. an error message that seems to indicate that DMD is looking for a global identifier is not clear to mortals like myself. :) He probably means something like this: struct State { } struct Input { }

toUTFz again

2012-03-13 Thread Andrej Mitrovic
I've completely lost track of what happened with the whole toUTF16z story, but anyway since it's in std.utf why doesn't it just forward to toUTFz? const(wchar)* toUTF16z(T)(T input) if (isSomeString!T) { return toUTFz!(const(wchar)*)(input); } That way it can take any string argument and

Re: toUTFz again

2012-03-13 Thread Andrej Mitrovic
On 3/13/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: I've completely lost track of what happened with the whole toUTF16z story Btw, to!string still doesn't work with wchar* arguments. I currently use this hack: wstring fromUTF16z(in wchar* s) { if (s is null) return null

Re: What's the correct opEquals signature for structs?

2012-03-13 Thread Andrej Mitrovic
On 3/14/12, Jonathan M Davis jmdavisp...@gmx.com wrote: As I understand it, auto ref is supposed to work with _any_ function. The _compiler_ decides whether it's best to use a ref or a value. I never really understood the need for 'const ref' with structures. If the compiler knows the size of a

Re: What's the correct opEquals signature for structs?

2012-03-13 Thread Andrej Mitrovic
On 3/14/12, Alex Rønne Petersen xtzgzo...@gmail.com wrote: void foo(S s) // compiler decides to pass by ref { s = S(2); } Well in this case it wouldn't pass by ref since it sees an assignment. But I can see how this would become tricky business (e.g. why is my code slow all of a sudden).

Re: DLL's and D

2012-03-15 Thread Andrej Mitrovic
On 3/15/12, H. S. Teoh hst...@quickfur.ath.cx wrote: It's correct, albeit a bit ugly. To alleviate the ugliness, you can tell the compiler where the root directory for the library is supposed to be. For example, if you invoked dmd with -ILibraries/Math, then you'll be able to say:

Re: Converting C .h Files to D Modules

2012-03-20 Thread Andrej Mitrovic
On 3/21/12, Pedro Lacerda kanvua...@gmail.com wrote: Ouch, void* is the same in both languages, sorry. I addressed a new problem: typedef struct SomeFunctions { void *(*funcA)(char*, size_t); void *(*funcB)(void); } SomeFunctions; How do I convert that functions references into an

Re: Converting C .h Files to D Modules

2012-03-20 Thread Andrej Mitrovic
On 3/21/12, bearophile bearophileh...@lycos.com wrote: Are you sure that works? It's easy to test: extern(C) struct SomeFunctions { void function(char*, size_t) funcA; void function() funcB; } void main() { writeln(typeof(SomeFunctions.funcA).stringof); }

Re: Converting C .h Files to D Modules

2012-03-20 Thread Andrej Mitrovic
On 3/21/12, Pedro Lacerda kanvua...@gmail.com wrote: dnewbie, you're correct, the return type is void* instead of void. I didn't notice the pointer thanks to the silly C function pointer syntax. :)

Re: problems countered after while(read()){} terminated with ^D or EOF

2012-03-22 Thread Andrej Mitrovic
On 3/22/12, Tyro[17] nos...@home.com wrote: issue #2 how do i read a string[] such that whitespace (all or one of my choosing) delineate the string boundary? Jesse Phillips has a cmdln.interact library that I think would work by using: string[] result = userInput!(string[])(Enter

Re: Template constraint and specializations

2012-03-23 Thread Andrej Mitrovic
On 3/23/12, Ed McCardell edmcc...@hotmail.com wrote: Is there a way to write a template constraint that matches any specialization of a given type? Nope. But there are simple workarounds: class Foo(bool feature1, bool feature2) { enum _isFoo = true; } template isFoo(T) { enum bool isFoo =

Re: Template constraint and specializations

2012-03-23 Thread Andrej Mitrovic
On 3/23/12, Philippe Sigaud philippe.sig...@gmail.com wrote: testFoo is a function that accepts any Foo!( ... ) for any ... The second line tests it on a value of type T (T.init). That can't work. For a Foo!int your code will expand like so: // original code void tester(Args...)(Foo!Args

Re: string[] to char**

2012-03-23 Thread Andrej Mitrovic
On 3/23/12, bearophile bearophileh...@lycos.com wrote: This is one way to do it: immutable(char)** p = array(map!toStringz(data)).ptr; This is asked so frequently that I think we could consider adding it to Phobos.

Re: Template constraint and specializations

2012-03-23 Thread Andrej Mitrovic
On 3/23/12, Philippe Sigaud philippe.sig...@gmail.com wrote: It works for me Yes but check the isA template. It seems there's something causing a nested variadic template to fail. This won't work in a template constraint (it returns false): template isA(alias Foo) { template isA(T) {

Map with maintained insertion order

2012-03-23 Thread Andrej Mitrovic
Does someone have a map implementation that maintains the insertion order of the keys? E.g.: string[string] map; map[foo] = x; map[bar] = y; When iterating over map keys I want to visit foo first, then bar, and so on.

Re: Map with maintained insertion order

2012-03-23 Thread Andrej Mitrovic
On 3/23/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: Does someone have a map implementation that maintains the insertion order of the keys? Here's a sloppy implementation: module test; import std.stdio; import std.traits; template KeyType(V : V[K], K) if (isAssociativeArray!(V[K

Re: Map with maintained insertion order

2012-03-23 Thread Andrej Mitrovic
On 3/24/12, Jonathan M Davis jmdavisp...@gmx.com wrote: I can't think of any data structure that does that off the top of my head Java has it and they call it a LinkedHashMap: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/LinkedHashMap.html That _does_ require having two data

Re: Map with maintained insertion order

2012-03-23 Thread Andrej Mitrovic
On 3/24/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: On 3/23/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: Does someone have a map implementation that maintains the insertion order of the keys? Here's a sloppy implementation: I forgot to make opIndex ref, but also

Re: Map with maintained insertion order

2012-03-23 Thread Andrej Mitrovic
On 3/24/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: static if (isArray!Value) { template isValue(T) { enum bool isValue = is(typeof( { Value v; T t; v = t; } )) || is(BaseElement!Value == T); } } Correction, it's: template isValue(T) { enum bool isValue

Re: Map with maintained insertion order

2012-03-23 Thread Andrej Mitrovic
On 3/24/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: Correction, it's: template isValue(T) { enum bool isValue = is(typeof( { Value v; T t; v = t; } )) || is(typeof( { BaseElement!Value v; T t; v = t; } )) || is(BaseElement!Value == T); } Last check not needed, so

Get indexes of character in array

2012-03-28 Thread Andrej Mitrovic
I'd like to get a list of indexes into an array that matches a character. E.g.: a foo a bar a.indexes(a) == [0, 6, 12] Anything like that in Phobos?

Re: Get indexes of character in array

2012-03-28 Thread Andrej Mitrovic
3/28/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: I'd like to get a list of indexes into an array that matches a character. E.g.: a foo a bar a.indexes(a) == [0, 6, 12] Hah I even managed to screw up that bar has an 'a' there. Anywho this works just fine: size_t[] indexes(string

Re: Get indexes of character in array

2012-03-28 Thread Andrej Mitrovic
On 3/28/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: snip Also a better name might be 'indices'.

Is this a bug in overload resolution?

2012-03-30 Thread Andrej Mitrovic
class Foo { bool test() { return true; } } class Bar { this() { foo = new Foo; } Foo foo; alias foo this; } class FooBar : Bar { bool test(int x) { return true; } alias super.test test; } void main() {} test.d(17): Error: 'this' is only defined in non-static member

Re: std.json dynamic initialization of JSONValue

2012-03-31 Thread Andrej Mitrovic
On 12/1/11, Kai Meyer k...@unixlords.com wrote: I'm finding std.json extremely well written, with one glaring exception. I'm finding it to be crap. The last time I used it I just kept getting access violations (or was that std.xml? They're both crap when I used them.). ae.json beats its pants

Simulating multiple inheritance

2012-03-31 Thread Andrej Mitrovic
This is related to wrapping wxWidgets. One issue with the new wxWidgets 2.9.x series is that there seem to be more multiply-inherited classes than before. In particular some of the main classes have become MI classes (e.g. wxApp derives from wxAppConsole which is now an MI class). Some wrappers

Re: Length of an SLIst ?

2012-04-02 Thread Andrej Mitrovic
On 4/2/12, Justin Whear jus...@economicmodeling.com wrote: Classic singly-linked lists must be iterated to determine length, so use std.range.walkLength on it. Specifically call it on its range. You can get a range by slicing the slist, e.g.: import std.range; import std.container; void

Re: Length of an SLIst ?

2012-04-02 Thread Andrej Mitrovic
On 4/2/12, Justin Whear jus...@economicmodeling.com wrote: Classic singly-linked lists must be iterated to determine length I'm no algorithms buff, but I don't understand the benefit of not storing the length in the SList. What does it cost to maintain an extra variable? It's a single

Re: Length of an SLIst ?

2012-04-02 Thread Andrej Mitrovic
On 4/2/12, Steven Schveighoffer schvei...@yahoo.com wrote: (i.e. sublists are also valid SLists) I haven't thought of that, good point. :)

Re: making args global

2012-04-03 Thread Andrej Mitrovic
On 4/4/12, jicman cabr...@wrc.xerox.com wrote: imagine this code... I'm assuming you're using D2. import core.runtime; void c() { char[] t = Runtime.args[0].dup; } void main(char[][] args) { int i = 1; } .dup is necessary since Runtime keeps the args as a string[] and not a char[][].

Remove dir contents?

2012-04-05 Thread Andrej Mitrovic
There's rmdirRecurse in std.file, but it removes the folder itself as well as its contents. I'm looking for a function that removes only the contents of the dir. Is this in Phobos, and if not can we add it? Otherwise I have to use platform-specific calls to system() like del *.*.

Re: Remove dir contents?

2012-04-05 Thread Andrej Mitrovic
On 4/5/12, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: Otherwise I have to use platform-specific calls to system() like del *.*. Actually nevermind that, I can just remove the dir entirely and then re-create it.

Re: D slower ~1s from C ?!

2012-04-05 Thread Andrej Mitrovic
On 4/5/12, Minas minas_mina1...@hotmail.co.uk wrote: And this is the time execution of the programs C via GCC (gcc -m32 test.c -o testgcc.exe -std=c99 -lm -O5) Elapsed Time: 0:00:02.015 D via DMD (dmd test.d -oftestdmd.exe -release -inline -O -noboundscheck) Elapsed Time: 0:00:08.312 D

Re: Remove dir contents?

2012-04-05 Thread Andrej Mitrovic
On 4/5/12, Jonathan M Davis jmdavisp...@gmx.com wrote: But it does have the downside of the new directory possibly not matching the original one with regards to permissions or ownership That's a very good point. Since I run all of my code locally I never run into these issues and so I've never

Re: string concatenation

2012-04-08 Thread Andrej Mitrovic
On 4/8/12, dnewbie r...@myopera.com wrote: I have a wchar[] and I want to convert it to UTF8 then append a string. This is my code. import std.c.windows.windows; import std.string; import std.utf; int main() { wchar[100] v; v[0] = 'H'; v[1] = 'e'; v[2] = 'l'; v[3] =

Re: DMD/Windows: Inspect generated ASM?

2012-04-08 Thread Andrej Mitrovic
On 4/8/12, Stefan ste...@schuerger.com wrote: Any good tools for this (link)? So far I only found old .obj tools from the 90s on the web... I use objconv. http://www.agner.org/optimize/#objconv I use this batch script to disasm an .obj file and open the .asm file: @echo off setlocal

Re: Operator Overloading with class template

2012-04-08 Thread Andrej Mitrovic
On 4/9/12, Eyyub eyyub.pangeara...@gmail.com wrote: Np :D, you don't know how can I do for the example 2 ? Well for one thing, there are no global operators in D. Others might help out with writing a proper opBinary that's defined in Value itself.

Re: Input from a newbie

2012-04-09 Thread Andrej Mitrovic
On 4/9/12, Jonas jo...@lophus.org wrote: On Saturday, 7 April 2012 at 22:42:19 UTC, Stefan wrote: printf is a C function which expects 0-terminated strings. D's strings are variable-length arrays and not zero-terminated. Don't use printf. Try using writef instead. Same arguments.

Multiple %s format specifiers with a single argument

2012-04-09 Thread Andrej Mitrovic
import std.string; void main() { string foo = foo; string bar = format(%s %s %s, foo); } format expects 3 arguments, but what I really want is foo to be used for all 3 specifiers and not repeat 'foo' 3 times manually. Are there any format specifiers that do what I want? I've tried using

Re: Input from a newbie

2012-04-09 Thread Andrej Mitrovic
On 4/9/12, Artur Skawina art.08...@gmail.com wrote: However, there's no reason why *std.stdio* should expose the raw printf function - i didn't even realize it did until now... It either shouldn't be available via std.stdio at all, or something like this wrapper should be added there, to catch

Re: Multiple %s format specifiers with a single argument

2012-04-09 Thread Andrej Mitrovic
On 4/9/12, q66 quake...@gmail.com wrote: Positional specifier works just fine for me. Which version are you using? I'm on 2.058.

  1   2   3   4   5   6   7   8   9   10   >