On Monday, 1 April 2013 at 01:54:10 UTC, John Colvin wrote:
I've been learning assembler a bit and I decided to have a look
at what dmd spits out. I tried a simple function with arrays to
see what vectorization gets done
void addto(int[] a, int[] b) {
a[] += b[];
}
dmd -O -release -inline
We have __FILE__ and __LINE__. Is there a __FUNCTION__ that gives
the current function name? This helps with errors.
On Thursday, 20 December 2012 at 04:17:48 UTC, r_m_r wrote:
On 12/18/2012 04:42 AM, js.mdnq wrote:
It looks like the approach 2 does what I'm looking for pretty
nicely
except that, If I'm not mistaken the user struct will error
out when
trying to access members from the master.
On Monday, 17 December 2012 at 22:47:33 UTC, bearophile wrote:
maarten van damme:
How do I make dmd output asm?
You can't, unfortunately. They closed this enhancement request
of mine because they say DMD is not designed for this.
On Linux there are several disassemblers, I use objdump. On
On Monday, 17 December 2012 at 15:46:22 UTC, anonymous wrote:
On Monday, 17 December 2012 at 15:10:24 UTC, js.mdnq wrote:
This i probably a rather dumb question but I've been up all
night and therefor have a really good excuse ;) (I can barely
see straight...)
Is opGet the reverse opA
On Monday, 17 December 2012 at 22:24:58 UTC, r_m_r wrote:
On 12/17/2012 04:33 AM, js.mdnq wrote:
Well, it a slightly another way and close. Let me see if I can
come up
with something that expresses better what I'm after. It will
be a week
or two though till I get around to it probably.
This i probably a rather dumb question but I've been up all night
and therefor have a really good excuse ;) (I can barely see
straight...)
Is opGet the reverse opAssign? I can't find any docs on it but it
does let me write converters from my type to another type.
e.g.,
struct X { int value
I see now why it was returning a bool as that is the type of the
template argument passed.
class A(bool x = true)
then your TemplateArgs returns `tuple(bool)`. What I'm looking
for is something that returns `(x)`. For class A(T1, T2, bool x =
true) I would like `(T1, T2, x)`.
To see why thi
On Saturday, 15 December 2012 at 21:49:51 UTC, Philippe Sigaud
wrote:
Oops ;/ How do I get the number of type arguments if I don't
know them
yet? I know this sort of seems wrong but somehow, to know how
to alias the
class I need to know it's number of arguments. (I don't think
it makes too
mu
On Sunday, 16 December 2012 at 15:21:17 UTC, Philippe Sigaud
wrote:
The real issue I'm having now is not having to mangle the
names and hide
the `_NestLevel` and `_Offset` dependencies.
alias works for the case of one template argument to _A.
Simply `alias
_A!(true) A`. But when I have more
On Sunday, 16 December 2012 at 20:29:19 UTC, r_m_r wrote:
On 12/16/2012 02:03 PM, js.mdnq wrote:
That looks like it might be pretty close. I was also thinking
that one
could just use mixin templates of trying to do it with structs
directly.
i dunno if this is what u want, but have a look
On Sunday, 16 December 2012 at 15:34:34 UTC, Philippe Sigaud
wrote:
One could also think of it as an algebra of structs.
It would be nice to be able to do stuff like
A + B, A - B(possibly useless), A*B(possibly useless), etc...
A + B would just combine the members, A - B could remove the
memb
On Saturday, 15 December 2012 at 19:01:23 UTC, ref2401 wrote:
What does means 'maxRelDiff' parameter?
I looked at the source code of this method and I still didn't
get it.
return fabs((lhs - rhs) / rhs) <= maxRelDiff
|| maxAbsDiff != 0 && fabs(lhs - rhs) <= maxAbsDiff;
In what cases can I use
On Sunday, 16 December 2012 at 06:38:13 UTC, anonymous wrote:
On Saturday, 15 December 2012 at 16:32:27 UTC, r_m_r wrote:
On 12/15/2012 08:57 PM, anonymous wrote:
Note that here s1alpha and s2alpha are distinct types.
what about this: http://dpaste.dzfl.pl/95f7a74d
Consider
struct Foo {mix
On Sunday, 16 December 2012 at 01:32:44 UTC, r_m_r wrote:
On 12/16/2012 06:36 AM, r_m_r wrote:
this is the closest I can get: http://dpaste.dzfl.pl/9d11d060
Cleaned up a bit: http://dpaste.dzfl.pl/d9f001db
regards,
r_m_r
That looks like it might be pretty close. I was also thinking
that on
On Saturday, 15 December 2012 at 23:04:37 UTC, r_m_r wrote:
On 12/16/2012 04:00 AM, js.mdnq wrote:
Now, the next step is to be able to "insert" code into the
struct! ;)
how about this: http://dpaste.dzfl.pl/8161d00a
regards,
r_m_r
No, it's backwards! ;)
Or, sort of what one
On Saturday, 15 December 2012 at 22:21:21 UTC, Philippe Sigaud
wrote:
If you don't mind, could you see if your solutions work on the
following
code:
http://dpaste.dzfl.pl/64025e0a
What you're doing here is a bit different (AFAICT). _A is a
template, not a
'real' class. So, it has no classinf
On Saturday, 15 December 2012 at 19:09:25 UTC, r_m_r wrote:
On 12/10/2012 01:24 AM, js.mdnq wrote:
which will fail or not be what I want, since I want to
generate the
structs s1 and s1.
how about this: http://dpaste.dzfl.pl/c0325def
regards,
r_m_r
Cool, That looks like a step in the
On Saturday, 15 December 2012 at 13:16:17 UTC, anonymous wrote:
On Saturday, 15 December 2012 at 13:08:01 UTC, js.mdnq wrote:
The following code
http://dpaste.dzfl.pl/64025e0a
when compiled, has all the static and const char[] strings
used only for compile time inside the executable.
How
On Saturday, 15 December 2012 at 12:33:13 UTC, bearophile wrote:
js.mdnq:
static if (std.string.indexOf(S, ")") < -1)
...
else
...
This always returns false regardless if S contains a 7 or not.
If it doesn't find the substring it returns -1, so that's
always fal
How do we manipulate strings at compile time when using static
ifs?
static if (std.string.indexOf(S, ")") < -1)
...
else
...
This always returns false regardless if S contains a 7 or not.
from http://dpaste.dzfl.pl/64025e0a
mixin(StructNestType!("B", "b1"));
but I would like to modi
On Friday, 14 December 2012 at 20:14:29 UTC, Philippe Sigaud
wrote:
On Fri, Dec 14, 2012 at 1:18 AM, bearophile
wrote:
Fit to be added to Phobos?
Maybe, I don't know. People seem to ask for this quite
regularly.
Here is a slightly improved version, what do you think?
template isTemplat
On Friday, 14 December 2012 at 05:54:33 UTC, Philippe Sigaud
wrote:
Ok, I'll try again. when I was doing it I would get circular
referencing
but maybe I did something wrong...
Another possibility is to use `.A`: the (.) prefix means the
symbol is
looked in the external scope, not inside t
On Thursday, 13 December 2012 at 22:10:40 UTC, Philippe Sigaud
wrote:
On Thu, Dec 13, 2012 at 11:56 AM, js.mdnq
wrote:
I need to get the number of type parameters of a class at
compile time:
class a(T1, T2, ...)
{
static if (a.TypeInfo.NumParameters == 1)
else
On Thursday, 13 December 2012 at 22:16:00 UTC, Philippe Sigaud
wrote:
yeah, I tried that and got errors, I guess it works now. I
still can't use
the same class name as the alias though because I get a
recursion error.
It's not a huge deal but would be nicer to not have to mangle
the class
names
On Thursday, 13 December 2012 at 06:26:15 UTC, dennis luehring
wrote:
Am 13.12.2012 04:32, schrieb js.mdnq:
I think the issue I have with all this is that when you put
code
inside a string you lose a lot of compile time features AFAICT.
your right - but...try to come up with an similar
On Thursday, 13 December 2012 at 10:03:34 UTC, anonymous wrote:
On Thursday, 13 December 2012 at 09:29:46 UTC, js.mdnq wrote:
class _A(T, _NestLevel) { }
alias _A!(T, true) A!(T) // <- does not work but essentially
what I want
template A(T) {
alias _A!(T, true) A;
}
(or even bet
I need to get the number of type parameters of a class at compile
time:
class a(T1, T2, ...)
{
static if (a.TypeInfo.NumParameters == 1)
else
}
Is this possible?
On Monday, 10 December 2012 at 22:01:37 UTC, Ali Çehreli wrote:
On 12/10/2012 01:52 PM, js.mdnq wrote:
> I want to avoid having to wrap the code with "
> " as it disables highlighting and possibly other
features(intellisense,
> etc...))
The q{} syntax is supposed to help wit
On Thursday, 13 December 2012 at 01:09:28 UTC, js.mdnq wrote:
Take the example here:
http://forum.dlang.org/thread/vrupqijwqmccdpabm...@forum.dlang.org
note how he provides the body of the method in the mixin. I
would like to something similar to what he has done but provide
the body of the
On Tuesday, 11 December 2012 at 07:15:38 UTC, Zhenya wrote:
I'm sorry for my english.
I know that D != Python and my example don't need
any RTTI.
D has alias this feature.My example shows that we can use alias
this with types.
And I just want use this:
struct Type(T)
{
alias T m_type;
a
On Monday, 10 December 2012 at 22:01:37 UTC, Ali Çehreli wrote:
On 12/10/2012 01:52 PM, js.mdnq wrote:
> I want to avoid having to wrap the code with "
> " as it disables highlighting and possibly other
features(intellisense,
> etc...))
The q{} syntax is supposed to help wit
On Monday, 10 December 2012 at 19:54:51 UTC, Zhenya wrote:
Hi!
In some previous post I asked about possibility of declar
opIndex,that return type.
I thoght about it,and I understood that code like this is legal:
struct Type(T)
{
alias T m_type;
alias m_type this;
}
void main()
This gets back to my question about nested structs(since I'm
trying to find a way to make it work). Take the following working
example:
class A {
struct B {
A* a;
}
B b1;
B b2;
}
Wastes a lot of space as we store a ptr to A for each field we
use. If there were 100 B
On Monday, 10 December 2012 at 07:48:37 UTC, Ali Çehreli wrote:
On 12/09/2012 10:43 PM, js.mdnq wrote:
> I thought `alias this` essentially treats the object as the
alias.
>
> struct A {
> alias value this;
> int value;
> void func();
> }
>
> A a;
>
> then a i
On Monday, 10 December 2012 at 20:17:41 UTC, Philippe Sigaud
wrote:
If I'm not mistaken isn't the "code" I'm trying to generate
still in a
string?
Well, yes, but not when you mix it in. It's a string mixin in
this case,
not a template mixin.
My whole point is not to use strings to insert
On Monday, 10 December 2012 at 04:50:17 UTC, Ali Çehreli wrote:
On 12/09/2012 11:52 AM, js.mdnq wrote:
> Well, I would not say they are exactly the same.
Do they have to be exactly the same? You are showing a method
that fails to satisfy a requirement, I show another method
which accord
On Sunday, 9 December 2012 at 19:34:05 UTC, anonymous wrote:
On Sunday, 9 December 2012 at 19:24:24 UTC, js.mdnq wrote:
In this particular case you can do this:
mixin template GenStruct(string stringname)
{
struct S
{
}
mixin("alias S " ~ stringname ~ "al
On Sunday, 9 December 2012 at 19:38:28 UTC, Ali Çehreli wrote:
On 12/09/2012 11:23 AM, js.mdnq wrote:
> but b is not private, only the internal representation of it.
e.g.,
> `alias Value_ this` is public. I do realize that it sort of
makes Value_
> and b one and the same but they are
On Sunday, 9 December 2012 at 19:09:49 UTC, anonymous wrote:
On Sunday, 9 December 2012 at 10:42:40 UTC, js.mdnq wrote:
How can I create mixes of stringified code and code itself?
[...]
mixin template GenStruct(stringname)
{
struct stringname ~ "alpha"
{
}
On Sunday, 9 December 2012 at 16:50:55 UTC, Ali Çehreli wrote:
On 12/09/2012 01:42 AM, js.mdnq wrote:
> Actually, it doesn't seem to work ;/ Your code worked but
mine does
> unless I make it public. It is a public/private issue and I
get a ton of
> errors:
This is not adding to
On Sunday, 9 December 2012 at 11:25:25 UTC, Philippe Sigaud wrote:
You can use a templated string-returning function and mix it in:
string codeGenerator(compileTimeArguments, Other...)(Other
others)
{
string result = ...
(...) // build your code here
return result;
}
(...)
cla
On Sunday, 9 December 2012 at 10:42:40 UTC, js.mdnq wrote:
How can I create mixes of stringified code and code itself?
http://dlang.org/mixin.html
explains how to create structs using strings. But what if I do
not want to have to encode the whole struct as a string but
only parts of it
Actually, it doesn't seem to work ;/ Your code worked but mine
does unless I make it public. It is a public/private issue and I
get a ton of errors:
module main;
import std.stdio;
class A
{
public:
string Name;
struct B(T)
{
On Sunday, 9 December 2012 at 09:06:28 UTC, Maxim Fomin wrote:
On Sunday, 9 December 2012 at 06:54:33 UTC, js.mdnq wrote:
Why can't a struct inside a class access the members of that
class without a this pointer? It would seem natural to me that
a nested struct should probably be speci
On Sunday, 9 December 2012 at 08:56:00 UTC, Maxim Fomin wrote:
On Sunday, 9 December 2012 at 07:39:29 UTC, js.mdnq wrote:
On Sunday, 9 December 2012 at 07:24:57 UTC, Jonathan M Davis
wrote:
On Sunday, December 09, 2012 07:54:25 js.mdnq wrote:
Why can't a struct inside a class acces
On Sunday, 9 December 2012 at 08:27:45 UTC, Ali Çehreli wrote:
On 12/08/2012 11:05 PM, js.mdnq wrote:
> Can it not be possible to use alias this on a private field?
I've just tested it. It is possible with dmd 2.060:
struct Q
{
private:
int _x;
public:
alias _x this;
}
v
...
A a;
What is the address of A?
What is the address of x inside A? (i.e., the struct inside A?)
I of course, mean a, which is why it's nice to have the ability
to make an edit so I don't have to waste a post and/or someone
else bloat the thread with "A is a class, not an object, go lea
On Sunday, 9 December 2012 at 07:24:57 UTC, Jonathan M Davis
wrote:
On Sunday, December 09, 2012 07:54:25 js.mdnq wrote:
Why can't a struct inside a class access the members of that
class without a this pointer? It would seem natural to me that
a
nested struct should probably be speci
Can it not be possible to use alias this on a private field?
struct Q
private:
int _x;
public:
alias _x this;
?
Seems to me that one does not always want the user to access the
internal value that is aliased ;/
Q q;
q._x // error yet q, for all practical purposes is _x, w
Why can't a struct inside a class access the members of that
class without a this pointer? It would seem natural to me that a
nested struct should probably be special in that it is really
just a special container to reduce clutter in the class.
class a {
string v;
struct b { void fun() {
On Thursday, 6 December 2012 at 03:22:55 UTC, Ali Çehreli wrote:
On 12/05/2012 04:40 PM, js.mdnq wrote:
> On Wednesday, 5 December 2012 at 22:53:11 UTC, Ali Çehreli
wrote:
>> On 12/05/2012 09:51 AM, js.mdnq wrote:
>>
>> > (if your having trouble understanding the probl
On Wednesday, 5 December 2012 at 22:53:11 UTC, Ali Çehreli wrote:
On 12/05/2012 09:51 AM, js.mdnq wrote:
> (if your having trouble understanding the problem then just
think of how
> you would efficiently store the nodes and edges of a directed
acyclic
> graph. Each node is of a
On Wednesday, 5 December 2012 at 03:59:29 UTC, Ali Çehreli wrote:
On 12/04/2012 06:42 PM, js.mdnq wrote:
> One thing I've always struggled with in oop is how to deal
with
> storing generic types.
>
> A very simple example is, suppose you had to design a way to
> store gene
One thing I've always struggled with in oop is how to deal with
storing generic types.
A very simple example is, suppose you had to design a way to
store generic types.
class myGtype(T) { }
...
myGType[] gcollection; // should store various types such as
myGtype!int, myGtype!myobj, etc.., pos
One thing I've always struggled with in oop is how to deal with
storing generic types.
A very simple example is, suppose you had to design a way to
store generic types.
class myGtype(T) { }
...
myGType[] gcollection; // should store various types such as
myGtype!int, myGtype!myobj, etc.., pos
One thing I've always struggled with in oop is how to deal with
storing generic types.
A very simple example is, suppose you had to design a way to
store generic types.
class myGtype(T) { }
...
myGType[] gcollection; // should store various types such as
myGtype!int, myGtype!myobj, etc..,
One thing I've always struggled with in oop is how to deal with
storing generic types.
A very simple example is, suppose you had to design a way to
store generic types.
class myGtype(T) { }
...
myGType[] gcollection; // should store various types such as
myGtype!int, myGtype!myobj, etc.., pos
On Tuesday, 4 December 2012 at 07:17:15 UTC, Mike Parker wrote:
On Tuesday, 4 December 2012 at 04:31:40 UTC, js.mdnq wrote:
I created a .d file having a class with the modules tag at the
top and everything public. I put it in a dir and used the -I
flag
to include the path. When I import the
I have a class
static class myclass(T)
{
static void myfunc();
}
which I have to call like myclass!Q.myfunc();
How can I create a default type so that I can call it like
myclass.myfunc()?
I've tried
static class myclass(T = int) and (alias T = int), neither worked.
On Tuesday, 4 December 2012 at 16:42:21 UTC, Adam D. Ruppe wrote:
On Tuesday, 4 December 2012 at 16:34:50 UTC, js.mdnq wrote:
class myclass {
int ID;
}
Try something like this:
class myclass {
typeof(uniqueID!T.Get()) ID;
this() {
ID = uniqueID!T.Get();
}
}
The typeof(expr
I have a static class that generates unique ID's. The id's are
hardcoded as ints.
I would like to make this extensible and allow for other integer
numeric values to be(byte, ulong, etc...).
I can simply make the static class generic without issues.
The problem is the return type of the Get I
I created a .d file having a class with the modules tag at the
top and everything public. I put it in a dir and used the -I flag
to include the path. When I import the file I get an undefined
method.
1. Do I need to compile the .d file into a lib or can I just
import the .d and have it included d
When accessing an element outside a dynamic array I get an
exception.
I thought in D arrays will automatically expand themselves?
If not, how do I add an element to an array?
int[] arr = new int[1];
arr[1] = 34; // exception
If I change this to
int[] arr = new int[2];
arr[1] = 34;
Then it w
How does one initialize an array defined as
A[B][C] arr;
dynamically? (A,B,C are types, for example, int[int][string])
I want to store an array, indexed by strings, of ints, indexed by
ints.
For example, What I want is a hash map that maps integers to
integers so I can do something like
On Saturday, 1 December 2012 at 23:57:27 UTC, Artur Skawina wrote:
On 12/01/12 20:26, Jonathan M Davis wrote:
On Saturday, December 01, 2012 18:43:22 Timon Gehr wrote:
On 12/01/2012 06:23 PM, Jonathan M Davis wrote:
On Saturday, December 01, 2012 12:05:49 Artur Skawina wrote:
So, unless there'
On Saturday, 1 December 2012 at 20:25:55 UTC, Rob T wrote:
On Friday, 30 November 2012 at 23:11:28 UTC, js.mdnq wrote:
I've seen that, how does it work?
struct A{
Sometype val1;
int val2;
alias val1 this;
alias val2 this; //???
}
How can A act both as Sometype and int? (at least wi
On Saturday, 1 December 2012 at 11:06:02 UTC, Artur Skawina wrote:
On 12/01/12 03:48, Jonathan M Davis wrote:
On Saturday, December 01, 2012 03:05:00 js.mdnq wrote:
Let O be an object with opCast overridden, then
writeln(O); //prints string
writeln(cast(void *)O)) // error, works fine if I
On Saturday, 1 December 2012 at 11:24:51 UTC, s0beit wrote:
Alright, at the end of my long search I have finally concluded
that this is some sort of threading problem.
Any D module loaded in a new thread, from a C/++ application
will crash. The solution, I believe, in this case might be to
hi
Let O be an object with opCast overridden, then
writeln(O); //prints string
writeln(cast(void *)O)) // error, works fine if I comment out the
opCast override
writeln(&O) // address of pointer to O, not what I want.
I want to compare a few objects based on their location. (I know
this is bad
I'm running into an issue of trying to get back the normal this
pointer ;/
If I so `alias a this;` how do I get the pointer to the object
back for other purposes?
On Friday, 30 November 2012 at 21:46:47 UTC, Rob T wrote:
On Friday, 30 November 2012 at 14:14:36 UTC, js.mdnq wrote:
On Friday, 30 November 2012 at 14:02:42 UTC, Andrej Mitrovic
wrote:
On 11/30/12, js.mdnq wrote:
alias t this;
This should explain: http://dlang.org/class.html#AliasThis
On Friday, 30 November 2012 at 14:02:42 UTC, Andrej Mitrovic
wrote:
On 11/30/12, js.mdnq wrote:
alias t this;
This should explain: http://dlang.org/class.html#AliasThis
Thanks, I'm sure I saw that at some point but I guess it just
didn't sink in. This seems really cool and mig
I've seen this technique pop up in several things and I'm curious
to what it is/how it's used?
alias t this;
does what? It seems like it's used as a way to "trick" the
compiler into doing some cool/useful things?
It seems one can accomplish this using delegates assigned by
generic functions. The delegate will end hold holding the "state"
of the function. It sort of acts like a binder. It seems to work
but more testing needs to be done. I'm not sure how efficient it
is or if there is a better way but bas
On Friday, 30 November 2012 at 03:40:31 UTC, Ali Çehreli wrote:
On 11/29/2012 07:24 PM, jerro wrote:
On Friday, 30 November 2012 at 02:59:06 UTC, js.mdnq wrote:
I have a struct I am trying convert from int's to the type.
Since I
can't add a opCast overload to an int I don't kno
I have a struct I am trying convert from int's to the type. Since
I can't add a opCast overload to an int I don't know how to do
it. My opCast convertors in my class do not work for the
assignment operator:
class myType
{
opCast, opAssign
}
mytype = 3;
Error that we can't convert an int
I need to store a templated function in a function pointer, how
can I do this?
e.g.,
void function(double) myfuncptr;
void myfunc(double d) { }
myfuncptr = myfunc;
Now I would like to use a template parameter instead of double.
In C++ one can do this by using boosts binding's and function
Reading 'the book' and it states that D does not allow one to
nest construction calls that are not "complete".
e.g.,
this()
{
if (x > 1) { this(x); }
}
will fail.
First, I do not know why this is required. It seems to me it
would be better to allow one optionally use another constructor
79 matches
Mail list logo