so what exactly is const supposed to mean?
Bruno Medeiros
brunodomedeirosATgmail at SPAM.com
Tue Jul 4 03:32:58 PDT 2006
Sean Kelly wrote:
> Bruno Medeiros wrote:
>> Sean Kelly wrote:
>>>
>>> > and doesn't D already have a const keyword?
>>>
>>> D has const as a storage attribute, which is a bit different from the
>>> above. D's const may only apply to concrete data types, and implies
>>> that the data will never be modified for the duration of the program.
>>> This allows the compiler to place such data in ROM and to perform
>>> some optimizations that would otherwise not be possible. But this is
>>> quite limited in that it may only be applied to data that can be
>>> evaluated at compile-time.
>>>
>>
>> There is a slight difference from D's const and a const that places
>> the data in ROM as you cannot get the address of a D const var (it's
>> not an lvalue).
>
> Ever tried taking the address of a const string? That you can't take
> the address of other const types is simply a result of optimization.
>
I tried it now, and the const string also can't be taken an address from:
const char[] str = "ABC";
void func()
{
*(&str) = "123"; // : "ABC" is not an lvalue
}
--
Bruno Medeiros - CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
More information about the Digitalmars-d-learn
mailing list