I have a value type (Foo) which is supposed to contain references to some multi_index_container of its type, like so:

struct Foo {
  int property1;
  int property2; 

  FooMIC* other; // this (the pointer value) may or may not be indexed upon

typedef multi_index_container< Foo, 
    < sequenced<>
    , ordered_unique< member<Foo, int, &Foo::property1> >
    , ...
    >>  FooMIC;

Due to recursive nature of this, I wasn't able to figure out how do declare such a thing (other than unsafely using void* references in Foo). 

Any ideas?

Thanks many,