↑ ↓ ← → Heinz <malagana15 yahoo.es>
writes:
Hi,
I have a simple struct and i want to check if a variable has been asigned:
struct hello
{
}
...
hello h;
...
if(!h)
{
do stuff;
}
When compiling i get erros about opCall not implemented and many others. What
can i do?
Thanks in advance.
↑ ↓ ← → downs <default_357-line yahoo.de>
writes:
Heinz wrote:
Hi,
I have a simple struct and i want to check if a variable has been asigned:
struct hello
{
}
...
hello h;
...
if(!h)
{
do stuff;
}
When compiling i get erros about opCall not implemented and many others. What
can i do?
Thanks in advance.
Structs are value types. Read the spec. Then use a pointer :)
hello* h;
if (!h) h = new hello;
--downs
↑ ↓ ← → Heinz <malagana15 yahoo.es>
writes:
downs Wrote:
Heinz wrote:
Hi,
I have a simple struct and i want to check if a variable has been asigned:
struct hello
{
}
...
hello h;
...
if(!h)
{
do stuff;
}
When compiling i get erros about opCall not implemented and many others. What
can i do?
Thanks in advance.
Structs are value types. Read the spec. Then use a pointer :)
hello* h;
if (!h) h = new hello;
--downs
Thanks for your reply. Can i use then?:
hello h;
if(!&h)
↑ ↓ ← → "Simen Kjaeraas" <simen.kjaras gmail.com>
writes:
On Tue, 29 Apr 2008 06:50:18 +0200, Heinz <malagana15 yahoo.es> wrote:
downs Wrote:
Structs are value types. Read the spec. Then use a pointer :)
hello* h;
if (!h) h =3D new hello;
--downs
Thanks for your reply. Can i use then?:
hello h;
if(!&h)
No. &h will always return a non-null pointer (h exists, in other words).=
You might use some convoluted workaround to make hello aware of whether =
or
not it has been assigned something.
Easy example:
struct hello
{
bool assigned;
// other fields;
}
hello h;
h =3D hello(true, ...);
if (h.assigned)
DoSomethingOrOther();
This may or may not be enough for you needs.
-- Simen
↑ ↓
← → downs <default_357-line yahoo.de>
writes:
Heinz wrote:
downs Wrote:
Heinz wrote:
Hi,
I have a simple struct and i want to check if a variable has been asigned:
struct hello
{
}
...
hello h;
...
if(!h)
{
do stuff;
}
When compiling i get erros about opCall not implemented and many others. What
can i do?
Thanks in advance.
hello* h;
if (!h) h = new hello;
--downs
Thanks for your reply. Can i use then?:
hello h;
if(!&h)
No.
Structs are *value types*.
That means, unless _explicitly newed_ (or part of a struct that's explicitly
newed), they _always_ live on the stack.
Ergo, if &h is null, your complete callstack is shot :)
--downs