BinaryHeap as member

balddenimhero balddenimhero at googlemail.com
Mon Nov 13 16:26:20 UTC 2017


On Monday, 13 November 2017 at 15:43:35 UTC, balddenimhero wrote:
> On Monday, 13 November 2017 at 14:38:35 UTC, balddenimhero 
> wrote:
>> I need a priority queue of integers whose elements are not 
>> ordered by the default `opCmp` but some delegate.
>>
>> The following gist illustrates the problem I'm having:
>> https://run.dlang.io/gist/92876b2c4d8c77cdc68f1ca61e7e8e44?compiler=dmd
>>
>> The `Foo` class is supposed to wrap a binary heap (to be used 
>> as priority queue) and order its contents according to 
>> `o.isLess`. However I do not manage to initialise the 
>> according member variable.
>>
>> Obviously, with the `h` member having type `BinaryHeap(int[], 
>> "a<b")` and the constructor trying to assign a 
>> `BinaryHeap!(int[], f)` the types do not quite match (line 18).
>>
>> Maybe I'm missing something obvious or approaching this in the 
>> wrong way. Do you have any suggestions on how to achieve the 
>> desired result?
>
> In case it helps, here is the functionality I'm trying to port 
> to D https://pastebin.com/CWAiEy40. I'm still struggling with 
> properly defining the member in D though.

In the course of writing a minimal example I removed more than 
necessary in the previous pastebin (the passed IntOrder has not 
even been used). Thus here is the corrected one: 
https://pastebin.com/SKae08GT. I'm trying to port this to D.


More information about the Digitalmars-d-learn mailing list