Non so se possa funzionare (non ho mai indagato a fondo) però potebbe essere qualcosa del genere:
codice:
// operatore globale
TypeManipulator* operator<<(
    TypeManipulator* pManipolator, 
    CGeometricVector& vect) {

    pManipolator->manipulateVector(vect);
    return pManipolator;
}
In questo modo puoi concatenare gli operatori.
Eventualmente puoi anche fare un secondo overload per i reference.
codice:
// operatore globale
TypeManipulator& operator<<(
    TypeManipulator& pManipolator, 
    CGeometricVector& vect) {

    pManipolator.manipulateVector(vect);
    return pManipolator;
}
Alla più diperata incaspuli il TypeManipulator in un apposito adapter per forzare l'invocazione dell'operatore.