UHD  003.005.004-0-ga219f16c
Macros
pimpl.hpp File Reference
#include <uhd/config.hpp>
#include <boost/shared_ptr.hpp>

Go to the source code of this file.

Macros

#define UHD_PIMPL_DECL(_name)   struct _name; boost::shared_ptr<_name>
 
#define UHD_PIMPL_MAKE(_name, _args)   boost::shared_ptr<_name>(new _name _args)
 

Detailed Description

"Pimpl idiom" (pointer to implementation idiom). The UHD_PIMPL_* macros simplify code overhead for declaring and making pimpls.

Each pimpl is implemented as a shared pointer to the implementation:

See also
http://en.wikipedia.org/wiki/Opaque_pointer

Macro Definition Documentation

◆ UHD_PIMPL_DECL

#define UHD_PIMPL_DECL (   _name)    struct _name; boost::shared_ptr<_name>

Make a declaration for a pimpl in a header file.

◆ UHD_PIMPL_MAKE

#define UHD_PIMPL_MAKE (   _name,
  _args 
)    boost::shared_ptr<_name>(new _name _args)

Make an instance of a pimpl in a source file.