[Qt-interest] Problem with passing reference parameters
Scott Aron Bloom
Scott.Bloom at sabgroup.com
Sat Mar 7 01:27:21 CET 2009
> -----Original Message-----
> From: qt-interest-bounces at trolltech.com [mailto:qt-interest-
> bounces at trolltech.com] On Behalf Of Denton Vis
> Sent: Friday, March 06, 2009 3:57 PM
> To: qt-interest at trolltech.com
> Subject: [Qt-interest] Problem with passing reference parameters
>
> Hi guys,
> I do realize that this may be more of a C++ question. But as I have
> encountered it while working with Qt, I will ask it here.
> gcc allows Qt to have functions like:
> void writeNamespace ( const QString & namespaceUri,
const
> QString & prefix = QString() )
> As well as to pass object where references are required.
>
> But when I do write a function e.g.
> void doSomething(std::string & s);
> and I make a call to it using:
> doSomething(QString("test").toStdString()) or
> doSomething(std::string("test"));
> the compiler complains very loudly about not finding the function
> definition:
> doSomething(std::string )
> and tells me to try:
> doSomething(std::string &)
>
> I must therefore first create a temporary variable and then pass it as
a
> reference.
>
> am I missing something?
>
> Thanks!
This really does belong on a C++ group... but...
Your not defining the interface as const std::string & but rather
std::string & (missing the const)
I leave it to your googling to figure out why :) Hint.. why would you
want to be able to write to a temporary variable created on the call
stack
Scott
More information about the Qt-interest-old
mailing list