$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Anthony Williams (anthwil_at_[hidden])
Date: 2002-09-12 08:18:09
I have uploaded a class template "StrongStorage" that implements the ideas I
voiced in an earlier thread about variant types for containing any object type
in a way that supports strongly exception safe assignment and swap to:
http://groups.yahoo.com/group/boost/files/strongstorage.hpp
usage is simple:
boost::StrongStorage<SomeType> ss; // empty, contains nothing
SomeType val; // some value
boost::StrongStorage<SomeType> ss2(val); // contains a copy of val
if(ss.isEmpty()) doSomething(); // check whether it contains a value
SomeType& ref=ss2.value(); // get a reference to the value
ss=ss2; // strongly-exception safe assignment
ss.swap(ss2); // strongly-exception safe swap
It uses boost::aligned_storage for the underlying storage.
Is the interface sufficient? Is it useful? Any other comments?
Anthony