On Monday, 30 December 2019 at 19:46:50 UTC, Ron Tarrant wrote:
Thanks, mipri. Got it sorted. Here's a working proof...

```
import std.stdio;
import std.algorithm;
import std.conv;

void main(string[] args)
{
        MyObject[] objectArray;
        MyObject newObject;
        MyObject findPointer;
        long index;
        
        int lastObjectID = 7;
        int foundObjectIndex;
        
        for(int i; i < 12; i++)
        {
                lastObjectID++;
                newObject = new MyObject(lastObjectID);
                objectArray ~= newObject;
                
                if(i is 5)
                {
                        findPointer = newObject;
                }
        }
        
        for(int i; i < objectArray.length; i++)
        {
writeln("object: ", cast(MyObject*)objectArray[i], ", ID: ", objectArray[i].objectID);
        }
        
        index = objectArray.countUntil(findPointer);
writeln("findPointer: ", findPointer, ", at address: ", cast(MyObject*)findPointer, " is a MyObject pointer in the objectArray with an index of ", index, ", address: ", cast(MyObject*)objectArray[index], ", ID: ", objectArray[index].objectID);
        
} // main()


class MyObject
{
        int objectID;
        
        this(int ordinal)
        {
                objectID = ordinal;
                
        } // this()
        
} // class MyObject

```

Compare:

  import std.stdio;
  import std.algorithm;
  import std.conv;

  void main(string[] args)
  {
        MyObject[] objectArray;
        MyObject newObject;
        MyObject findPointer;
        long index;

        int foundObjectIndex;

        for(int i; i < 12; i++)
        {
                newObject = new MyObject();
                objectArray ~= newObject;

                if(i is 5)
                {
                        findPointer = newObject;
                }
        }

        for(int i; i < objectArray.length; i++)
        {
                writeln("object: ", cast(MyObject*)objectArray[i]);
        }

        index = objectArray.countUntil(findPointer);
writeln("findPointer: ", findPointer, ", at address: ", cast(MyObject*)findPointer, " is a MyObject pointer in the objectArray with an index of ", index, ", address: ", cast(MyObject*)objectArray[index]);

  } // main()


  class MyObject {}

With output:

  object: 7F2DC37C3000
  object: 7F2DC37C3020
  object: 7F2DC37C3030
  object: 7F2DC37C3040
  object: 7F2DC37C3050
  object: 7F2DC37C3060
  object: 7F2DC37C3070
  object: 7F2DC37C3080
  object: 7F2DC37C3090
  object: 7F2DC37C30A0
  object: 7F2DC37C30B0
  object: 7F2DC37C30C0
findPointer: x297.MyObject, at address: 7F2DC37C3060 is a MyObject pointer in the objectArray with an index of 5, address: 7F2DC37C3060

Reply via email to