|
Boost : |
From: Philippe A. Bouchard (philippeb_at_[hidden])
Date: 2003-03-03 09:36:27
Fernando Cacciola wrote:
[...]
>> Maybe it would be better to simply disable EH overhead with some
>> BOOST macro. _That_ would be really really great then...
>>
>>
> Which EH overhead?
Exception Handlings. Actually, there is one: BOOST_NO_EXCEPTIONS but I
cannot compile with -fno-exceptions under gcc (some try / catch were still
there).
> Anyway, the problem with your proposal is that as I said before the
> boolean flag is initialized before the object is really constructed.
Actually postponed<> looked like the following and initilialized<> is a list
of booleans set to false:
template <typename T>
struct postponed : storage<T>, initialized<T>
{
typedef T type;
typedef storage<T> storage_t;
typedef initialized<T> initialized_t;
template <int I>
partial<typename type_at<storage_t, I>::type::value_t> & set()
{
static_cast<typename type_at<initialized_t, I>::type &>(*
this).value = true;
return static_cast<typename type_at<storage_t, I>::type &>(*
this).value;
}
template <int I>
typename type_at<storage_t, I>::type::value_t const & get()
const
{
return static_cast<typename type_at<storage_t, I>::type
const &>(* this).value.get();
}
};
Philippe A. Bouchard
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk