struct opCast to void* and back

bearophile bearophileHUGS at
Sun Apr 11 04:16:20 PDT 2010


> Hello everyone,

Hello, this is a question fitter for the D.learn newsgroup.

> how can I cast a struct to void* and back to my struct? I have the following struct:

This is D2 code (yours was probably D1):

import std.stdio: writeln;

struct MyStruct {
    string structName;

    public string toString() {
        return structName;

    void* opCast() {
        return &this;

void main() {
    MyStruct test = MyStruct("Example struct");
    void* temp1 = cast(void*)test;
    void* temp2 = &test;
    assert(temp1 == temp2);

Note that struct names are written in with their first letter uppercase.
Using just a & you don't need that opCast.


More information about the Digitalmars-d mailing list