Opened 12 years ago
Closed 12 years ago
#5165 closed Bugs (fixed)
Error in documentaiton "Using smart pointers with Boost.Intrusive containers"
Reported by: | Owned by: | Ion Gaztañaga | |
---|---|---|---|
Milestone: | To Be Determined | Component: | interprocess |
Version: | Boost 1.45.0 | Severity: | Problem |
Keywords: | Cc: |
Description
The example at http://www.boost.org/doc/libs/1_35_0/doc/html/interprocess/offset_ptr.html is erroneous and misleading.
First of all, some declarations about namespaces are missing.
More importantly, the following line
typedef ip::list<shared_memory_data> shm_list_t;
defines shm_list_t in such a way that it uses standard allocators. This means that the list items are created in normal memory, which is not what the example intends.
Even worse, the "Check all the inserted nodes" test fails to detect this problem.
The example is problematic anyway, because it only deals with one process.
The attachment could serve as a starting point for a good and working example. I suspect you won't like the printf's in it....
Attachments (1)
Change History (3)
by , 12 years ago
Attachment: | shm_list.cc added |
---|
comment:1 by , 12 years ago
Component: | Documentation → interprocess |
---|---|
Owner: | changed from | to
comment:2 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
The intention was not to show a full example, just to point that intrusive accepts custom smart pointers. I've fixed the list definition to be an intrusive list in Boost 1.47
starting point for working example