$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: JeanHeyd Meneide (phdofthehouse_at_[hidden])
Date: 2019-06-29 19:33:30
Dear Bagaskoro Kang,
I apologize, I thought my previous message got the example through to
you, but it seems like it did not. Here is the example using out_ptr to do
what you describe:
struct SizedDeleter {
size_t size = 0;
void operator()(Interface* obj) const {
DeleteBusInterface(obj, size);
}
};
using bop = boost::out_ptr;
size_t& size_ref = p_obj.get_deleter().size;
std::unique_ptr<Interface, SizedDeleter> obj;int ret =
CreateBusInterface(..., bop::out_ptr(obj), &size_ref);if (ret != 0) {
throw std::runtime_error("deep sadness");
}/* use obj ...*/
Similarly, for posix_memalign:
using bop = boost::out_ptr;
std::unique_ptr<Numf, DoFree> upNumf;/* some work... */int ret =
posix_memalign(bop::out_ptr<void*>(upNumf), 64, nNumf);if (ret != 0) {
throw std::runtime_error("something went wrong and posix_memalign
failed!");
}
I hope that helps.
Sincerely,
JeanHeyd