> to get back to VectorBase, the motivation of VectorBase was two folds:
> 1 - better API by hiding vector specific methods from matrix expressions
> (aka compile time errors).
> 2 - faster compilation for matrix code.
> Another minor advantage is that all vector specific methods get grouped in
> a separate class.
I just had another idea. The correct solution to your problem 2b is probably
that, if you are going to put vector-specific methods in VectorBase<true>
then you could as well put matrix-specific methods in VectorBase<false>. So
that they would never be in conflict with one another. (of course the naming
could be improved, MatrixBase becomes XprBase, VectorBase<true> becomes
VectorBase, VectorBase<false> becomes MatrixBase, VectorBase itself becomes a
meta-selector).
What do you think?
In fact I believe this is the correct C++ solution. The only issue that I see
is that it's going to be difficult to make Doxygen understand that!