digitalmars.D - null assignment to bit variable
- Peter Thomassen <info peter-thomassen.de> Aug 14 2006
- Sean Kelly <sean f4.ca> Aug 14 2006
- Peter Thomassen <info peter-thomassen.de> Aug 15 2006
- Sean Kelly <sean f4.ca> Aug 15 2006
- Peter Thomassen <info peter-thomassen.de> Aug 15 2006
- Chris Nicholson-Sauls <ibisbasenji gmail.com> Aug 15 2006
- Peter Thomassen <info peter-thomassen.de> Aug 16 2006
- "Chris Miller" <chris dprogramming.com> Aug 14 2006
- "Unknown W. Brackets" <unknown simplemachines.org> Aug 14 2006
Hi, the following doesn't work: bit test; test = null; I understand that this is not possible, but coming from the PHP world, I'm looking for a way to define that "test" hasn't got a value yet, not even true or false. Is that possible? Is there a workaround? Thanks! Peter
Aug 14 2006
Peter Thomassen wrote:Hi, the following doesn't work: bit test; test = null; I understand that this is not possible, but coming from the PHP world, I'm looking for a way to define that "test" hasn't got a value yet, not even true or false. Is that possible? Is there a workaround?
bool* test = null; test = new bool; (note that bit has been replaced by bool in recent versions of D) Sean
Aug 14 2006
Sean Kelly schrieb am Dienstag, 15. August 2006 03:34:bool* test = null; test = new bool;
This looks nice ... but how do I read / write the value of test? After assigning "new bool", reading it gives a memory address, and writing fails. Maybe I should've posted to digitalmars.D.learn :-)(note that bit has been replaced by bool in recent versions of D)
Thanks. Peter
Aug 15 2006
Peter Thomassen wrote:Sean Kelly schrieb am Dienstag, 15. August 2006 03:34:bool* test = null; test = new bool;
This looks nice ... but how do I read / write the value of test? After assigning "new bool", reading it gives a memory address, and writing fails. Maybe I should've posted to digitalmars.D.learn :-)
The other suggestion to use an enum is a better one. To use the bool above you have to dereference the pointer: if( test !is null && *test ) { // something that requires test to be set and true } Sean
Aug 15 2006
Sean Kelly schrieb am Dienstag, 15. August 2006 23:59:if( test !is null && *test ) { // something that requires test to be set and true }
And how would I set it false? Peter
Aug 15 2006
Peter Thomassen wrote:Sean Kelly schrieb am Dienstag, 15. August 2006 23:59:if( test !is null && *test ) { // something that requires test to be set and true }
And how would I set it false? Peter
*test = false; -- Chris Nicholson-Sauls
Aug 15 2006
Chris Nicholson-Sauls schrieb am Mittwoch, 16. August 2006 02:01:And how would I set it false?
*test = false;
I'm that stupid -- thanks. Peter
Aug 16 2006
On Mon, 14 Aug 2006 21:22:54 -0400, Peter Thomassen = <info peter-thomassen.de> wrote:Hi, the following doesn't work: bit test; test =3D null; I understand that this is not possible, but coming from the PHP world,=
I'm looking for a way to define that "test" hasn't got a value yet, not ev=
true or false. Is that possible? Is there a workaround? Thanks! Peter
Perhaps bool/bit isn't even what you want. enum Foo: byte { None, True, False, } Foo f =3D Foo.None; and this requires no heap allocation or extra storage.
Aug 14 2006
Just remember, D is not PHP :).
As it would happen, the way PHP/Zend does it is using a struct:
enum zval_type
{
IS_NULL,
IS_STRING,
IS_INTEGER,
}
struct zval
{
zval_type type = zval_type.IS_NULL;
union
{
char[] str_val = null;
int int_val = 0;
}
}
I'm also primarily a PHP programmer, by the way ;).
-[Unknown]
Hi,
the following doesn't work:
bit test;
test = null;
I understand that this is not possible, but coming from the PHP world, I'm
looking for a way to define that "test" hasn't got a value yet, not even
true or false.
Is that possible? Is there a workaround?
Thanks!
Peter
Aug 14 2006









Peter Thomassen <info peter-thomassen.de> 