
Hi, Thanks for the ideas, I am storing all ideas safely and will try to move forward with the ideas during the summer. I do agree with backward compatibility, I see this as a full new mapping which requires real modern C++ compilers. Johnny
Please share ideas of how things could look like, for example, what do we do for the _var/_ptr/_narrow, how would this look like with a new mapping. We can easily use std::string, std::vector, but especially _var/_ptr replacement is very important.
Ideas:
- Use shared_ptr for both _var and _ptr.
std::shared_ptr<FooFactory> factory = // get a Foo factory std::shared_ptr<Foo> foo = factory->make_a_foo("my foo"); foo->do_something();
Or even the now evil:
factory->make_a_foo("my foo")->do_something(); // currently leaks
_narrow will still be needed since you need the server's help.
- IDL string is std::string - IDL sequence and array are std::vector - Java maps them to the same thing
std::vector<octet> object_id(); std::shared_ptr<Object> id_to_reference(const std::vector<octet>&);
C++0x allows std::vector to be returned via std::move without cost.
- No exception specs
- Forget backward compatibility. Consider it a new language. It doesn't replace the current C++ mapping it is a new language mapping for Modern_C++. So vendors can support either one or both. Just like vendors can now support C++ and Java and Python or just Java, etc.
KevinH
-- Kevin Heifner