
Hi JeanHeyd, Thanks for creating and sharing the library. I must admit that I followed it for a while, both in Boost and the LEWG proposal and I was never able to grasp what it is for. Now, this time, the docs seem to be a lot more clear. We have a good motivation page: https://github.com/ThePhD/out_ptr/blob/master/docs/out_ptr/overview.adoc I really appreciate it. The just edited initial page is helpful. I also recommend putting this text in the intro page: "the C++11 abstraction for passing smart pointers as parameters to T** arguments" -- it helped me a lot to understand what the library is for. And let me make sure if I actually grasped the scope of the library. Let me make an inverse statement. "Unless I am using APIs that take T**, this out_ptr will be of no use to me". Is this statement correct? I have one immediate comment. a lot of stuff is performed in the destructor of out_ptr_t: https://github.com/ThePhD/out_ptr/blob/master/docs/out_ptr/reference/out_ptr... In fact, it calls constructors of smart pointers (with custom deleters) that can potentially throw exceptions. This is disturbing that the destructor of out_ptr_t can silently throw an exception. And in such case, we do not know what happens. Your destructor is not marked `noexcept`: in the Standard Library it means it obtains `noexcept` silently. In Boost it means nothing special, so whether it is noexcept or not depends of the internal details of the class implementation, so you are recommended to declare explicitly either `noexcept` or `noexcept(false)`. Regards, &rzej; pon., 27 maj 2019 o 08:01 JeanHeyd Meneide via Boost <boost@lists.boost.org> napisaĆ(a):
Dear Boost Community,
After a lot of work and discussion in-person, via e-mail, and on the Slack, I would like to ask for the library boost.out_ptr <https://github.com/ThePhD/out_ptr/blob/master/docs/out_ptr.adoc> -- targeting C++11 -- to be endorsed for review.
Documentation: ascii doc-ready and readable on GitHub <https://github.com/ThePhD/out_ptr/blob/master/docs/out_ptr.adoc> Repository: GitHub <https://github.com/ThePhD/out_ptr> Standards Proposal: p1132 <https://thephd.github.io/vendor/future_cxx/papers/d1132.html> (accepted for and targeting C++20)
boost.out_ptr is a library for making it easy to interoperate between smart pointers and traditional C-style initialization and allocation interfaces. It also enables doing so in a way that allows library authors to opt-into speed optimizations for their smart pointers that give them performance equivalent to typical C pointers (see benchmarks < https://github.com/ThePhD/out_ptr/blob/master/docs/out_ptr/benchmarks.adoc
. Many thanks to Ezra (eracpp) for a lot of the quick, easy-to-read examples
and the Standard C++ proposal <https://thephd.github.io/vendor/future_cxx/papers/d1132.html#perf> for more details). Many thanks to the in-person discussion during Library in a Week at C++Now, which helped shape the implementation and yield the final Rationale <https://github.com/ThePhD/out_ptr/blob/master/docs/out_ptr/rationale.adoc that became part of the documentation.
Sincerely, JeanHeyd Meneide
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost