My point was, you don't have an index-interface in plf::colony, iterating (that what plf::colony provides) over the entire plf::colony is not very usefull, not to say almost meaningless.
I'm sorry, but that statement has no basis in reality.
The LEMON Graph(s) resemble a doubly linked list implemented on top of a std::vector. The range of uint32_t large is enough to cater for any DAG imaginable. A 64-bit app would need twice the storage using pointers, which would affect cache-locality.
I'm not actually interested in your specific use-case, but as I said, in actual benchmarks, despite the doubling of necessary storage for a pointer, the reference is faster than indexing, and cache locality is not adversely affected. I've already said this, so there was no need for me to repeat. And to be honest, you seem to be interested in a one-man-upmanship competition, and I don't do those, so I'm going to bow out. Best of luck with your life.