To clarify: the difference between structs and classes in D is that structs can't inherit and can't have virtual methods, looks like you don't use polymorphism in your C++ code, so just declare the types as structs. BTW your String layout matches that of D string except that D uses size_t for string length :)