template<typename T>
aes70::cork_handle class

This smart pointer calls cork in the constructor and uncork on its argument when it is destructed. This is an exception-safe way of calling cork() and uncork().