Mir
Classes | Functions
mir::raii Namespace Reference

Utilities for exception safe use of paired function calls. More...

Classes

struct  PairedCalls
 

Functions

template<typename Creator , typename Deleter >
auto paired_calls (Creator &&creator, Deleter &&deleter) -> std::unique_ptr< typename std::remove_reference< decltype(*creator())>::type, Deleter >
 Creates an RAII object from a creator and deleter. More...
 
template<typename Owned , typename Deleter >
auto deleter_for (Owned *owned, Deleter &&deleter) -> std::unique_ptr< Owned, Deleter >
 Creates an RAII object from an owning pointer and deleter. More...
 

Detailed Description

Utilities for exception safe use of paired function calls.

Function Documentation

template<typename Owned , typename Deleter >
auto mir::raii::deleter_for ( Owned *  owned,
Deleter &&  deleter 
) -> std::unique_ptr<Owned, Deleter>
inline

Creates an RAII object from an owning pointer and deleter.

The returned object is a std::unique_ptr initialized with the pointer and deleter.

Parameters
ownedthe object to take ownership of
deletercalled to finalize the owned object
template<typename Creator , typename Deleter >
auto mir::raii::paired_calls ( Creator &&  creator,
Deleter &&  deleter 
) -> std::unique_ptr<typename std::remove_reference<decltype(*creator())>::type, Deleter>
inline

Creates an RAII object from a creator and deleter.

If creator returns a pointer type then the returned object is a std::unique_ptr initialized with the pointer and deleter. Otherwise, the returned object calls creator on construction and deleter on destruction

Parameters
creatorcalled to initialize the returned object
deletercalled to finalize the returned object

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.


Copyright © 2012-2016 Canonical Ltd.
Generated on Mon Jun 5 11:05:03 UTC 2017