Binary Compatibility Workarounds: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
=Binary Compatibility Workarounds= | [[Category:Developing_Qt]] | ||
= Binary Compatibility Workarounds = | |||
This page describes some workarounds for keeping binary compatibility in patch releases. | This page describes some workarounds for keeping binary compatibility in patch releases. | ||
You should read the | You should read the KDE reference: http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++ | ||
==Declaring a slot for private classes (d-pointer)== | == Declaring a slot for private classes (d-pointer) == | ||
Use a Q_PRIVATE_SLOT: | Use a Q_PRIVATE_SLOT: | ||
<code><br /> class A: public QObject<br /> {<br /> Q_OBJECT<br /> …<br /> private:<br /> Q_PRIVATE_SLOT(d_func(), void myPrivateSlot())<br /> }; | |||
* | /* in .cpp file '''/ | ||
<br /> void APrivate::myPrivateSlot() {…} | |||
<br /> #include "moc_a.cpp&quot;<br /></code> | |||
<br />Pitfalls to avoid: | |||
<br />''' Don't include `a.moc`, but `moc_a.cpp` in your .cpp file<br />* Q_PRIVATE_SLOT takes the complete signature of the private slot, not just its name |
Revision as of 09:59, 24 February 2015
Binary Compatibility Workarounds
This page describes some workarounds for keeping binary compatibility in patch releases.
You should read the KDE reference: http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++
Declaring a slot for private classes (d-pointer)
Use a Q_PRIVATE_SLOT:
<br /> class A: public QObject<br /> {<br /> Q_OBJECT<br /> …<br /> private:<br /> Q_PRIVATE_SLOT(d_func(), void myPrivateSlot())<br /> };
/* in .cpp file '''/
<br /> void APrivate::myPrivateSlot() {…}
<br /> #include "moc_a.cpp&quot;<br />
Pitfalls to avoid:
Don't include `a.moc`, but `moc_a.cpp` in your .cpp file
* Q_PRIVATE_SLOT takes the complete signature of the private slot, not just its name