c++: constructor template

Boris Kolpackov boris at kolpackov.net
Fri Apr 9 15:18:36 CDT 2004

Good day,

There is this interesting technique (or idiom, if you please) that
I found a really elegant example of. The code explains it:

  class auto_lock
    template <typename x>
    static void
    unlock (void* p)
      reinterpret_cast<x*> (p)->unlock ();

    template <typename x>
    auto_lock (x& m)
      : m_ (reinterpret_cast<void*>(&m), unlock_ (&unlock<x>)
      m.lock ();

    ~auto_lock ()
      unlock_ (m_);

    void* m_;
    void (*unlock_) (void*);

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 652 bytes
Desc: Digital signature
Url : http://www.kolpackov.net/pipermail/notes/attachments/20040409/850687ef/attachment.bin

More information about the notes mailing list