On Thu, May 31, 2007 at 09:12:56PM +0200, Peter Kümmel wrote:
> > I tried to do something like this so I didn't have the same code in two
> > places:
> > QModelIndex & QCitationDialog::getSelectedIndex(QListView *) {
> >   QModelIndexList const selIdx =
> >         availableLV->selectionModel()->selectedIndexes();
> >       if (selIdx.empty())
> >           return QModelIndex(); //this is an invalid one.
> >      return selIdx.first();
> > }
> > But that failed: warning: returns reference to temporary. Any ideas how
> > to avoid this and still return a reference? Or could I return a smart
> 
> returning "const QModelIndex &" should be save. But you could also
> return may value, copying QModelIndex  isn't that expensive. The Qt
> code return often by value, QModelIndex was designed for this.

Indeed.

Apart from that

 QModelIndex & QCitationDialog::getSelectedIndex(QListView *) {
   ...
      if (selIdx.empty())
           return QModelIndex(); //this is an invalid one.

returns a reference to a temporary, which is useless in any case
as accessing it will invoke undefined behaviour.

Andre'

Reply via email to