On Thursday, 5 January 2023 at 22:49:01 UTC, thebluepandabear wrote:
Have fun reading this :

https://issues.dlang.org/show_bug.cgi?id=21929

Thanks for the code suggestion although it still doesn't fix the bug. I am curious as to what those brackets do as well.

Okay, my bad for writing the wrong code, the correct one is:
```d
foreach (BoardSize boardSizeIter; arr) (Boardsize boardSize){ // notice the brackets and I changed the variable names a little
     Button button = new Button();
     button.text = format("%sx%s", boardSize[0], boardSize[1]);
     button.onButtonClick = {

 eventHandler.settingsWindow_onBoardSizeButtonClick(boardSize);
     };
     button.onButtonClick();
     _boardSizeRow.addChild(button);
}(boardSizeIter) // notice the brackets and that I changed the name of you first foreach argument
```

This will do the same thing as HS Teoh and Tsbockman's code did : create a copy of the value that is currently present in one particular iteration of the `foreach` by creating a function literal that takes your `struct` as a paramter. This works because structs are value types, so passing it to the function creates a copy.

Reply via email to