Stephan Kulow wrote: > Hi! > > As there doesn't seem to be a real discussion going on anymore, > I declare the new trunk/KDE policy applying starting this monday. > > This means: > - next monday we will erase kdelibs4_snapshot and from that time > trunk/KDE/kdelibs is the kdelibs to compile against > - all of trunk is supposed to compile at any time against that very > kdelibs > - Source and binary incompatible changes are only allowed on mondays > (on every monday though) and porting efforts should be finished the > same evening (that means every developer is allowed to start changing > 8am her timezone and has to make sure trunk is compiling till 10pm his > timezone (being around in #kde4-devel and awaiting people complaining > might be enough). > - Source incompatible changes shall be developed in an extra branch before > they hit trunk. As trunk is supposed to compile at any time, you can branch > off trunk and make your changes till your branch compiles again. > > Now I hope we can get kdepim and kdewebdev to compile before monday, > otherwise this policy will be a bit complicated to enforce. And I hope > everyone makes sure we make this a dynamic process, i.e. update the policy if > it turns out it's imperfect. > > Greetings, Stephan Here my consequence: SVN commit 562605 by kuemmel: Don't add a macro when a real C++ (template) solution possible. Undo all pimpl changes. I'll also stop working on this because of the new kdelibs-commit-policy, which is like freezing kdelibs. Now I have to care about too much: branching, changing hole trunk, waiting for Monday - this is annoying even if it helps the application developers. Time to leave with 'rm -rf *', hope I've not forgotten something to revert. CCMAIL:kde-core-devel@kde.org M +0 -1 TODO M +0 -62 kdemacros.h.cmake --- trunk/KDE/kdelibs/TODO #562604:562605 @@ -10,7 +10,6 @@ help prevent mistakes where developers forget to delete the pointer. Maybe make use of Qt4 helper macros? (Frerich) - Use KDE_PIMPL_EN(DIS)ABLE_COPY to avoid compiler generated copy functions (Kümmel) - Move all utility functions away from KApplication. TBD: Make KApplication a very thin wrapper around QApplication. Ideally, KApplication should go --- trunk/KDE/kdelibs/kdemacros.h.cmake #562604:562605 @@ -361,66 +361,4 @@ # define KDE_DUMMY_QHASH_FUNCTION(C) #endif -/** - * @def KDE_PIMPL_ENABLE_COPY - * - * KDE_PIMPL_ENABLE_COPY is a macro for the - * consistent Pimpl (Pointer to Implementation) usage. - * - * It ensures that the code shows explicit how - * assignment and copying is handled. - * - * Using KDE_PIMPL_ENABLE_COPY one must also implement - * the copy constructor and the assignment operator. - * - * Using KDE_PIMPL_DISABLE_COPY makes the class NOT copyable - * by declaring the related functions as private. - * - * Example: - * - * \code - * class KClass { - * public: - * KClass(); - * ~KClass(); - * private: - * KDE_PIMPL_ENABLE_COPY(KClass); - * }; - * - * class KClass::KClassPrivate { - * public: - * int data; - * }; - * - * KClass::KClass() : d(new KClassPrivate) {} - * KClass::~KClass() { delete d; } - * KClass::KClass(const KClass& rhs) : d(new KClassPrivate) { operator=(rhs);} - * KClass& KClass::operator=(const KClass& rhs) { - * if(this!=&rhs) - * d->data = rhs.d->data; - * return *this; - * } - * \endcode - * - */ - - /** - * @def KDE_PIMPL_DISABLE_COPY - * - * see: - * @sa KDE_PIMPL_ENABLE_COPY - */ - -#define KDE_PIMPL_BASE_MACRO(COPY_ACCESS,X) \ -COPY_ACCESS: \ - X(const X##&); \ - X##& operator=(const X##&); \ -private: \ - class X##Private; \ - X##Private * const d; - -#define KDE_PIMPL_ENABLE_COPY(X) KDE_PIMPL_BASE_MACRO(public, X) -#define KDE_PIMPL_DISABLE_COPY(X) KDE_PIMPL_BASE_MACRO(private,X) - - #endif /* _KDE_MACROS_H_ */