From kde-core-devel Wed Jan 04 18:12:12 2006 From: Alexander Neundorf Date: Wed, 04 Jan 2006 18:12:12 +0000 To: kde-core-devel Subject: Re: KDE/kdebase/kicker/kicker Message-Id: <200601041912.13438.neundorf () kde ! org> X-MARC-Message: https://marc.info/?l=kde-core-devel&m=113639868412433 Hi, On Wednesday 04 January 2006 18:44, Alexander Neundorf wrote: ... > And here's already another one: And another one: --- konq_mainwindow.cc (revision 493979) +++ konq_mainwindow.cc (working copy) @@ -1411,7 +1411,7 @@ // Don't pre-fill the url, as it is auto-selected and thus overwrites the // X clipboard, making it impossible to paste in the url you really wanted. // Another example of why the X clipboard sux - KURLRequesterDlg dlg( QString(), this, 0, true); + KURLRequesterDlg dlg( QString::null, this, 0, true); dlg.setCaption( i18n("Open Location") ); And this is the typical error message, this time from konq_mainwindow.cc: /home/src/my_stuff/kde4-svn/kdebase/konqueror/konq_mainwindow.cc: In member function `void KonqMainWindow::slotOpenLocation()': /home/src/my_stuff/kde4-svn/kdebase/konqueror/konq_mainwindow.cc:1414: type specifier omitted for parameter /home/src/my_stuff/kde4-svn/kdebase/konqueror/konq_mainwindow.cc:1414: syntax error before `this' /home/src/my_stuff/kde4-svn/kdebase/konqueror/konq_mainwindow.cc:1415: request for member `setCaption' in `dlg(...)', which is of non-aggregate type ` KURLRequesterDlg ()(...)' /home/src/my_stuff/kde4-svn/kdebase/konqueror/konq_mainwindow.cc:1421: request for member `urlRequester' in `dlg(...)', which is of non-aggregate type ` KURLRequesterDlg ()(...)' Quote from David Faure: > This is a known parsing ambiguity in C++. > > As the book "Effective STL" says in item 6: > > int g(double (*pf)(); // g takes a pointer to a function as parameter > int g(double pf()); // same as above; pf is implicitly a pointer > int g(double()); // same as above; parameter name is ommitted > > Replace double with QString, and you'll see that SomeClass dlg(QString()) > can be parsed both ways. > > The book doesn't mention a good solution to this other than naming the > anonymous object, i.e. QString empty; SomeClass dlg(empty); which is ugly. > Using QString::null is cleaner IMHO, especially since QString::null is part > of Qt4 proper, it's not a QT3_SUPPORT thing. It's just a tiny bit slower to > convert to a QString, but when we're talking about creating a dialog that's > fine Alex -- Work: alexander.neundorf@jenoptik.com - http://www.jenoptik-los.de Home: neundorf@kde.org - http://www.kde.org alex@neundorf.net - http://www.neundorf.net