According to the C++03 standard, is it valid to have references to incomplete types? I’m not aware of any implementation that implements references as any other than non-null pointers, so such code ought to work. However, I wonder whether references to incomplete types are standard conforming.
I would appreciate answers with quotes and references to the C++ standard.
The C++ standard doesn’t explicitly say, as far as I know, that you can have a reference to an incomplete type. But the standard does have a section that specifies when a type must be complete:
It appears that in every other case, including declarations of references to incomplete types, the type can be incomplete.