digitalmars.D - I need my struct to convertable to 'wchar'
- Zoda (15/15) Jun 17 Hi, I need my struct to convertable to 'wchar' my struct looks
- monkyyy (18/33) Jun 17 ```
- Zoda (5/40) Jun 17 Thanks, i works but can i want to do something like
- H. S. Teoh (10/24) Jun 17 [...]
- Zoda (2/29) Jun 17 Oh thanks thats works just fine now. Thanks for you answer.
- H. S. Teoh (10/19) Jun 17 [...]
- Zoda (2/21) Jun 18 I'm currently working on refactoring my code. Thanks again, Zoda.
Hi, I need my struct to convertable to 'wchar' my struct looks like this ```d struct ColoredChar { int[3] rgb; wchar ch; } // Existing functions looks like this void doSomething(wchar ch) { ... } ``` i don't want my existing functions to break so i need my struct to be convertable to a 'wchar', how can achieve this? Thanks, Zoda.
Jun 17
On Tuesday, 17 June 2025 at 19:15:33 UTC, Zoda wrote:Hi, I need my struct to convertable to 'wchar' my struct looks like this ```d struct ColoredChar { int[3] rgb; wchar ch; } // Existing functions looks like this void doSomething(wchar ch) { ... } ``` i don't want my existing functions to break so i need my struct to be convertable to a 'wchar', how can achieve this? Thanks, Zoda.``` import std; struct ColoredChar { int[3] rgb; wchar ch(){ return 'a'; } alias ch this; } // Existing functions looks like this void doSomething(wchar ch) { ch.writeln; } unittest{ ColoredChar().doSomething; } ```
Jun 17
On Tuesday, 17 June 2025 at 19:29:16 UTC, monkyyy wrote:On Tuesday, 17 June 2025 at 19:15:33 UTC, Zoda wrote:Thanks, i works but can i want to do something like ColoredChar([255,0,0], '█') can its possible? Thanks again, Zoda.Hi, I need my struct to convertable to 'wchar' my struct looks like this ```d struct ColoredChar { int[3] rgb; wchar ch; } // Existing functions looks like this void doSomething(wchar ch) { ... } ``` i don't want my existing functions to break so i need my struct to be convertable to a 'wchar', how can achieve this? Thanks, Zoda.``` import std; struct ColoredChar { int[3] rgb; wchar ch(){ return 'a'; } alias ch this; } // Existing functions looks like this void doSomething(wchar ch) { ch.writeln; } unittest{ ColoredChar().doSomething; } ```
Jun 17
On Tue, Jun 17, 2025 at 07:15:33PM +0000, Zoda via Digitalmars-d wrote:Hi, I need my struct to convertable to 'wchar' my struct looks like this ```d struct ColoredChar { int[3] rgb; wchar ch; } // Existing functions looks like this void doSomething(wchar ch) { ... } ``` i don't want my existing functions to break so i need my struct to be convertable to a 'wchar', how can achieve this?[...] ```d struct ColoredChar { int[3] rgb; wchar ch; alias ch this; } ``` --T
Jun 17
On Tuesday, 17 June 2025 at 19:31:30 UTC, H. S. Teoh wrote:On Tue, Jun 17, 2025 at 07:15:33PM +0000, Zoda via Digitalmars-d wrote:Oh thanks thats works just fine now. Thanks for you answer.Hi, I need my struct to convertable to 'wchar' my struct looks like this ```d struct ColoredChar { int[3] rgb; wchar ch; } // Existing functions looks like this void doSomething(wchar ch) { ... } ``` i don't want my existing functions to break so i need my struct to be convertable to a 'wchar', how can achieve this?[...] ```d struct ColoredChar { int[3] rgb; wchar ch; alias ch this; } ``` --T
Jun 17
On Tue, Jun 17, 2025 at 07:36:27PM +0000, Zoda via Digitalmars-d wrote:On Tuesday, 17 June 2025 at 19:31:30 UTC, H. S. Teoh wrote:[...][...]```d struct ColoredChar { int[3] rgb; wchar ch; alias ch this; } ```Oh thanks thats works just fine now. Thanks for you answer.Glad it works. But you should know that `alias this` is generally regarded as an anti-pattern; it's great for a quick hack to get things done, but in the long term, you should probably refactor your code to avoid it. T -- If you want to solve a problem, you need to address its root cause, not just its symptoms. Otherwise it's like treating cancer with Tylenol...
Jun 17
On Tuesday, 17 June 2025 at 21:39:59 UTC, H. S. Teoh wrote:On Tue, Jun 17, 2025 at 07:36:27PM +0000, Zoda via Digitalmars-d wrote:I'm currently working on refactoring my code. Thanks again, Zoda.On Tuesday, 17 June 2025 at 19:31:30 UTC, H. S. Teoh wrote:[...][...]```d struct ColoredChar { int[3] rgb; wchar ch; alias ch this; } ```Oh thanks thats works just fine now. Thanks for you answer.Glad it works. But you should know that `alias this` is generally regarded as an anti-pattern; it's great for a quick hack to get things done, but in the long term, you should probably refactor your code to avoid it. T
Jun 18