From: Andrzej Krzemienski (akrzemi1_at_[hidden])
Date: 2019-05-27 12:20:06
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
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
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)`.
pon., 27 maj 2019 o 08:01 JeanHeyd Meneide via Boost <boost_at_[hidden]>
> 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
> 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
> 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
> Many thanks to Ezra (eracpp) for a lot of the quick, easy-to-read examples
> that became part of the documentation.
> JeanHeyd Meneide
> Unsubscribe & other changes:
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk