Re: How polymorphism work in D?

2019-11-05 Thread OiseuKodeur via Digitalmars-d-learn
On Wednesday, 6 November 2019 at 06:05:25 UTC, rikki cattermole 
wrote:

On 06/11/2019 6:43 PM, OiseuKodeur wrote:

I have this

```
import std.stdio : writeln;

abstract class Foo { }

class Bar : Foo
{
     float value;

     this(float t_value) { value = t_value; }
}

class Baz : Foo
{
     string name;

     this(string t_name) { name = t_name; }
}

void main()
{
     Foo foo = new Bar(10);

     if (/* typeof foo == Bar */)


if (Bar bar = cast(Bar)foo)
bar.value.writeln;


     foo.value.writeln;
     else if (/* typeof foo == Baz */)


else if (Baz baz = cast(Baz)foo)
baz.name.writeln;


     foo.name.writeln;

     foo.writeln;
}
```

I don't understand how i can differentiate between Bar and Baz 
and to get their attributes


thanks a lot


How polymorphism work in D?

2019-11-05 Thread OiseuKodeur via Digitalmars-d-learn

I have this

```
import std.stdio : writeln;

abstract class Foo { }

class Bar : Foo
{
float value;

this(float t_value) { value = t_value; }
}

class Baz : Foo
{
string name;

this(string t_name) { name = t_name; }
}

void main()
{
Foo foo = new Bar(10);

if (/* typeof foo == Bar */)
foo.value.writeln;
else if (/* typeof foo == Baz */)
foo.name.writeln;

foo.writeln;
}
```

I don't understand how i can differentiate between Bar and Baz 
and to get their attributes


Re: dub build doesn't work

2019-10-23 Thread OiseuKodeur via Digitalmars-d-learn
BTW if you prefer using optlink and the  digitalmars C runtime, 
you can instruct dub to do so with: --arch=x86


how can i add --arch=x86 flag to the dub.json so it do it 
automatically ?


Re: dub build doesn't work

2019-10-23 Thread OiseuKodeur via Digitalmars-d-learn

On Wednesday, 23 October 2019 at 22:06:28 UTC, SrMordred wrote:

On Tuesday, 22 October 2019 at 22:14:02 UTC, OiseuKodeur wrote:
Hello, i am having a problem with dub build with this project 
https://github.com/OiseauKodeur/cervelet/tree/master/source


when i try to compile everything go well but when i click to 
run the .exe it give my an error missing msvcr100.dll, but 
with rdmd the program run fine


I got into this recently too.
I have the latest VS and redistributable packages installed and 
was unable to find msvcr100.dll too. Which is very odd.

Lucky I found it on another software installed on my PC.


which software ?


Re: dub build doesn't work

2019-10-23 Thread OiseuKodeur via Digitalmars-d-learn

On Wednesday, 23 October 2019 at 18:37:10 UTC, kinke wrote:
On Wednesday, 23 October 2019 at 16:55:37 UTC, OiseuKodeur 
wrote:

On Wednesday, 23 October 2019 at 06:40:47 UTC, Seb wrote:
You won't need Visual Studio for this, but something which 
ships msvcr100.dll.

So sth. like this should be enough:

https://www.microsoft.com/en-us/download/details.aspx?id=



even when i installed the latest vcredist_x86 it doesn't work


You don't need the *latest* VC runtime (2019), but 2010, i.e., 
Seb's link. For DMD that is, LDC should be fine with the latest 
one.


Yes that's the one i downloaded


Re: dub build doesn't work

2019-10-23 Thread OiseuKodeur via Digitalmars-d-learn

On Wednesday, 23 October 2019 at 06:40:47 UTC, Seb wrote:

On Tuesday, 22 October 2019 at 22:14:02 UTC, OiseuKodeur wrote:
Hello, i am having a problem with dub build with this project 
https://github.com/OiseauKodeur/cervelet/tree/master/source


when i try to compile everything go well but when i click to 
run the .exe it give my an error missing msvcr100.dll, but 
with rdmd the program run fine


Did you try compiling with LDC?
Their Windows support is better maintained.

Anyhow, so what's happening is that dmd by default uses the 
digitalmars C runtime (32-bit only) whereas dub will use the 
llvm linker (64-bit) by default. Now llvm's linker searches for 
the Microsoft C runtime and can't find it. Hence, the error 
which you're receiving.


You won't need Visual Studio for this, but something which 
ships msvcr100.dll.

So sth. like this should be enough:

https://www.microsoft.com/en-us/download/details.aspx?id=

BTW if you prefer using optlink and the  digitalmars C runtime, 
you can instruct dub to do so with: --arch=x86



even when i installed the latest vcredist_x86 it doesn't work, 
but using --arch=x86 it works,   but only when i don't include 
dlangui in the dub.json, it give me another error 
https://i.imgur.com/f1Rvlg1.png (app.d line 21 "code = 
stdin.readln();" and line 7 is "void main(string[] arguments)"), 
so i maybe need to find a new gui library, and thanks now at 
least i can compile.





dub build doesn't work

2019-10-22 Thread OiseuKodeur via Digitalmars-d-learn
Hello, i am having a problem with dub build with this project 
https://github.com/OiseauKodeur/cervelet/tree/master/source


when i try to compile everything go well but when i click to run 
the .exe it give my an error missing msvcr100.dll, but with rdmd 
the program run fine