ok.. I know its a bit late (been on travel).
I started using it just after I came back to work. It works very well.
- I support it into boost.
- One comment on documentation. The ctor and destructor should be defined
in the same file as the private struct. I dont find that clearly stated in
the docs. The following will not compile (msvc 2005) when Test.h is used
in another file than Test.cpp.
// Test.h
class Test {
public:
Test(); // defined in Test.cpp
~Test(){}
private:
class Private;
boost::pimpl_ptr<Private> d;
};
Regards.
Knut
On Mon, 15 May 2006 02:45:40 +0200, Rene Rivera
The review of the pimpl_ptr library by Asger Mangaard starts today, Monday May 15th, 2006, and runs through May 25th, 2006. (Boost Reviews RSS feed http://tinyurl.com/ogpj6)
Pimpl Pointer -------------
:Author: Asger Mangaard
:Download: Boost Sandbox (http://boost-consulting.com/vault/) as "pimpl_ptr.zip". Direct download at http://tinyurl.com/m66ox.
:Description: The pimpl idiom is widely used to reduce compile times and disable code coupling. It does so by moving private parts of a class from the .hpp file to the .cpp file. However, it's implementation can be tricky, and with many pitfalls (especially regarding memory management). The pimpl_ptr library is a single header file, implementing a special policy based smart pointer to greatly ease the implementation of the pimpl idiom.
Review questions ----------------
Please always explicitly state in your review, whether you think the library should be accepted into Boost.
You might want to comment on the following questions:
- What is your evaluation of the design? - What is your evaluation of the implementation? - What is your evaluation of the documentation? - What is your evaluation of the potential usefulness of the library? - Did you try to use the library? With what compiler? Did you have any problems? - How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? - Are you knowledgeable about the problem domain?
Enjoy, Rene.
-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/