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
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