Why is it so annoying to write a compiler version dependent C++ bridge?
The goal behind UNO is to provide the simplest language binding for the UNO component writer and user, the least amount of generated code, and a maximum of execution speed. With the current technique, the goals are reached. For example, in C++ there is no call overhead, because a C++ to C++ call is only a virtual method call. There is no compile time code generation, it is done by the bridge on the fly. The UNO C++ language binding is smarter than all other (CORBA, COM) bindings. On the other hand, writing a C++ bridge is a hard thing to do, but this has to be done only once for each compiler, operating system, and processor. There are simpler ways to achieve language bindings, but they aren’t better ways. A bridge from cpp to uno is very compiler and abi dependent, and at first glance, it seems that it isn’t portable at all. But it must be noted that the bridge code is pretty similar for most compilers.