Este sistema é funcionalmente semelhante aos anteriormente apresentados e ao trabalho proposto, na medida em que admite a redirecção de chamadas a métodos de classes bem definidas. Apresenta, contudo, diferenças de filosofia. Os metaobjectos são entidades de primeira classe neste sistema e deve-se-lhes tanta atenção como a objectos da aplicação, enquanto que nos outros sistemas os objectos que realizam a indirecção apresentam sempre alguma transparência. No caso do Open C++, os objectos estão sempre acessíveis e os acessos aos metaobjectos são sempre automáticos.
Se os acessos oferecem uma certa transparência, o mesmo não se passa com a programação da aplicação. O programador deve programar explicitamente as directivas de reflexão, os comentários //MOP, por forma a decidir quais os métodos e variáveis sob o controlo do metaobjecto. O código do metaobjecto também é susceptível de ser modificado pelo programador e não apenas como consequência de estar disponível. A não transparência da programação é agravada pela modificação de semântica, embora não de sintaxe, de alguns aspectos da linguagem (e.g. comentários). A modificação da semântica é, no entanto, transparente para um compilador normal, ou seja, se a aplicação não utilizar metaobjectos, ainda que esta utilização possa não ter significado funcionalmente.
O sistema é potencialmente muito flexível, especialmente se se considerar que as propriedades reflexivas são recursivas e aplicáveis não só aos dados, mas também ao código, e que os metaobjectos não são exclusivos dos objectos da linguagem, mas podem também ser definidos de forma a estarem associados a outros metaobjectos, algo que poderia ser designado por metametaobjecto...
A programação não é, contudo, transparente, e o programador tem que tomar decisões, não só no que respeita à geração de código, mas também na utilização dos objectos e metaobjectos, assim como nas características que um objecto deve ter, isto é, se deve exibir reflexividade ou não.
O programador deve introduzir no programa várias directivas para o pré-processador dos metaobjectos. Embora se possam considerar de importância menor, como pormenores de uma concretização particular, alguns aspectos da ferramenta, que tem que realizar tarefas de processamento complexas, apresentam-se como limitações, tanto sintácticas como semânticas, tendo a maior parte que ver com as directivas de compilação ( //MOP), e com a posição relativa do restante código. Existem outras limitações, mas essas têm apenas relação com a realização do sistema, que condicionam alguma da funcionalidade oferecida, não tendo relevância nesta discussão.