Boost logo

Boost :

From: Andrzej Krzemienski (akrzemi1_at_[hidden])
Date: 2019-05-27 12:20:06

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

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
> <> --
> targeting C++11 -- to be endorsed for review.
> Documentation: ascii doc-ready and readable on GitHub
> <>
> Repository: GitHub <>
> Standards Proposal: p1132
> <> (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
> <> 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
> <
> >.
> Many thanks to Ezra (eracpp) for a lot of the quick, easy-to-read examples
> that became part of the documentation.
> Sincerely,
> JeanHeyd Meneide
> _______________________________________________
> Unsubscribe & other changes:

Boost list run by bdawes at, gregod at, cpdaniel at, john at