On Friday, 28 February 2014 at 23:53:48 UTC, Robin wrote:
I have made matrix a struct for a better performance and since everybody here on the forums was complaining about that it should be a struct type.

Making it a class is just a simple way to avoid the (explicit) pointer. Weigh that against your other goals and decide. Also, a pointer in itself isn't scarily unsafe.

When I uncomment the currently commented assertion I get linking errors. (these strange and nearly unreadable error messages.)

Here is a part of them:
[...]
undefined reference to `_D6neoLab4core9Dimension9Dimension6__ctorMFNaNbNcxmxmZS6neoLab4core9Dimension9Dimension'

"undefined reference" means the linker can't find that symbol. That means, you forgot to pass some file in. When compiling and linking in one step, dmd needs all source files: something like `dmd neoLab/core/ColumnVectorForwardRange.d neoLab/core/Matrix.d
neoLab/core/Dimension.d` (plus any other imported files outside
of phobos).

rdmd is a tool that reads the imports, calls dmd on all source files, and then runs the executable. It's shipped with dmd. With rdmd it would be just `rdmd neoLab/core/ColumnVectorForwardRange.d`.

Reply via email to