does the format of coverage files have a name?
or was the .lst extension chosen arbitrarily? my text editor [notepad++] thinks it's COBOL for some reason but that's obviously not correct, so i'm wondering if it has an official spec or anything. knowing the name of it would help - maybe my editor already has syntax highlighting for it.
Re: difficulty with rectangular arrays
On Friday, 11 June 2021 at 08:40:51 UTC, jfondren wrote: The example in the spec is in a function body and you've copied it to a class body, where the writeln() would also be in error. I find https://dlang.org/spec/grammar.html quite hard to read but I imagine there's a state/declaration distinction there, despite the code looking the same. This works: ```d class Example { double[6][3] matrix; this() { matrix = 0; } } ``` i see. that's a bummer - i knew the `writeln()` wouldn't work in a class body, but i assumed that because other initializations work [e.g, `int myint = 4;` or `int[69] funny = 420;`], this case would be much the same. ah well. off topic, your baba is you avatar is very cute.
difficulty with rectangular arrays
hullo all. i've encountered a bizzare inconsistency. the following is the [D spec on rectangular arrays](https://dlang.org/spec/arrays.html#rectangular-arrays): ``` void main() { import std.stdio: write, writeln, writef, writefln; double[6][3] matrix = 0; // Sets all elements to 0. writeln(matrix); // [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] } ``` however, when i attempt to place the very same code within a class... ``` class ExampleClass { double[6][3] matrix = 0; //fails to compile - "Error: cannot implicitly convert expression `0` of type `int` to `double[6][3]`" } ``` evidently i'm doing something wrong here, but i can't understand what or why. what's going on? have i misread the spec?
unicode characters are not printed correctly on the windows command line?
hi all. been learning d for the last few years but suddenly realised... when i use this code: writeln('♥'); the output displayed on the windows command line is "ÔÖÑ" [it works fine when piped directly into a text file, however]. i've looked about in this forum, but all that i could find was people in 2016[!] saying the codepage had to be altered - clearly nonsense, since Rust [which i am also learning] has no problem whatsoever displaying "♥". is there any function i can call or setting i can adjust to get D to do the same, or do i have to wait for something to be fixed in the language / compiler itself? best regards moth [su.angel-island.zone]
Re: "lld-link: error: could not open libcmt.lib: no such file or directory"
in case anyone else suffers from this in the future and is looking for a solution - redownloading visual studio 2017 and making sure the c++ workload was enabled fixed this for me. i'm not really sure why that worked, but i'm just happy to be able to learn again. trans rights! - moth
"lld-link: error: could not open libcmt.lib: no such file or directory"
hi all! after a long while away, i thought i'd download the latest D release and give learning it another shot. unfortunately, it looks like i screwed up somewhere big time =[ it was working fine for me before [a few months ago i think], but now whenever i try to compile i get the message "lld-link: error: could not open libcmt.lib: no such file or directory". sometimes, depending on what i'm trying to compile, it complains it can't find "OLDNAMES.lib" as well. i thought it was just that i had installed D wrong at first, but i've uninstalled / reinstalled a dozen times now and it's still not working. could i really have deleted whatever it's looking for somehow? i really want to be able to program in D, but i'm at my wit's end... please help! =[ - moth
Check Instance of Template for Parameter Type/Value
I'm working with a library that has template structs of mathematical vectors that can sometimes be the type of an array I'm passing to a function. The definition of the struct is like this: struct Vector(type, int dimension_){ ... } Where type is going to be an int/float/etc and dimension_ is 2/3/4. I could write a bunch of functions for each case, but I'd rather not... I'd like to use something like the following: void foo(T)(Array!T array){ if(isInstanceOf!(Vector, T)){ //get type of T or check it //test if dimension_ is 2 or 3 or 4 ... } else { //Non-vector stuff ... } } But to do that I need to check that parameters of T as if it were an instantiated instance of Vector and I'm not sure how to accomplish that... Can anyone help me out with what I need to do?