Because like many have said here, references are not objects. they are simply aliases. True some compilers might implement them as pointers, but the standard does not force/specify that. And because references are not objects, you cannot point to them. Storing elements in an array means there is some kind of index address (i.e., pointing to elements at a certain index),; and that is why you cannot have arrays of references, because you cannot point to them.
YouseUse boost::reference_wrapper, or boost::tuple instead.instead; or just pointers.