Boost logo

Boost :

From: Philippe A. Bouchard (philippeb_at_[hidden])
Date: 2003-02-24 04:42:48


Greeting,

    I would like to propose partial<> when you wish to postpone an object's
construction:
http://groups.yahoo.com/group/boost/files/shifted_ptr/partial.hpp

    The partial<T> object is aligned like an object of type T and reserves
enough memory space to hold it, of course. partial<> uses a helper
partial_type<> which is similar to Andrei Alexandrescu's typelists. It is
highly simplified and it does not cover member pointers up to now. Given
the fact I do not know Boost macros at 100%, I have left the code in pure
C++ syntax.

The following executable:
#include <iostream>
#include "partial.hpp"

using namespace std;
using namespace boost;

struct A
{
 A(int) {}
};

int main()
{
 cout << alignment_of< partial<char> >::value << endl;
 cout << alignment_of< partial<short> >::value << endl;
 cout << alignment_of< partial<int> >::value << endl;
 cout << alignment_of< partial<long long> >::value << endl;
 cout << alignment_of< partial<A> >::value << endl;

 partial<A> t;

 new (t) A(9);
}

Will ouput:
1
2
4
4
1

On an Intel platform.

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