Boost logo

Boost Users :

Subject: Re: [Boost-users] Help with custom classes PLEASE!!
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2010-02-03 10:24:39


AMDG

Daniel Veneros wrote:
> Thanks,
>
> I fixed some things and its running now.
> What I don't know how to do is to declarate/allocate a custom class..
> I got this:
>
> typedef managed_shared_memory::segment_manager SegmentManager;
>
> typedef allocator<char, SegmentManager> CharAllocator;
>
> typedef basic_string<char, std::char_traits<char>, CharAllocator>
> BasicString;
>
> typedef allocator<int, SegmentManager> IntAllocator;
>
>
> class Action
> {
> int id;
> BasicString task;
> public:
> Action(int num, const char *name, const VoidAllocator &void_alloc)
> :id(num), task(name,void_alloc)
> {}
> void setId(int num);
> void setTask(BasicString newTask);
> };
>
> void Action::setId(int num) {
> id = num;
> }
>
> void Action::setTask(BasicString newTask) {
> task = newTask;
> }
>
>
> Now... how should I allocate the "Class" object??
> Any Idea? Thanks!!
>

I assume that by Class you mean the Action class?
If this class is used at the top level, you can use
managed_shared_memory::construct. If you want
to use an allocator with it, the commands are

allocator<Action, SegmentManager> alloc(...);
// allocate memory
Action* action = alloc.allocate(1);
// construct an object using placement new
new (action) Action(12, "action", ...);

In Christ,
Steven Watanabe

P.S. Please send messages like this to boost-users rather than directly
to me.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net