Question about iteger literals
Uranuz via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Jul 20 11:12:42 PDT 2014
> In C/C++/D if you sum a types that are smaller than int, you
> obtain an int. D has copied C for backwards compatibility with
> C code.
>
> Bye,
> bearophile
Is there any reasoning why this should remain unchainged? How
could it break interface between languages? And also this code
succesfully compiles and runs in C++.
#include <iostream>
using namespace std;
int main()
{
unsigned short a = 15;
unsigned short b = 10;
unsigned short c = a + b; //There is no problem
cout << c << endl;
return 0;
}
As D compiler doesn't need to compile C programme and have
compatible operations with types. Why we still should keep this
garbage?!
I don't know the right solution but I believe that previous
example illustrates some contradiction in integer types system
design or implementation.
Why we dont promote *ulong* and *long* to int? Let's also promote
string into array of ints?! Can't believe it!
More information about the Digitalmars-d-learn
mailing list