22 #ifndef Om_Macro_Precompilation_
25 #include "boost/intrusive_ptr.hpp"
39 template <
typename ThisValue>
59 template <
typename TheValue>
61 std::auto_ptr<TheValue>
119 template <
typename TheValue>
121 std::auto_ptr<TheValue>
154 template <
typename TheValue>
A polymorphic object with value semantics.
void SetValue(std::auto_ptr< TheValue >)
Owner(std::auto_ptr< TheValue >)
ThisValue const * GetValue() const
void UncomparableBoolean() const
boost::intrusive_ptr< ThisValue > thisValue
The pointer to the contained, lazily-copied value.
bool thisWasExposed
True if the contained value was exposed for modification.
void(Owner::* Boolean)() const
The implementation of the Safe Boolean idiom.
An object that can take (copy or swap) another of the same type.
void swap(Om::Language::Expression &, Om::Language::Expression &)