> Hmm. Another reason why to avoid putting things in the private d-pointer > structure whenever possible. > > The 'd' pointer is of type 'KPrinterPrivate*'. In the context of the const > method, it will be 'KPrinterPrivate *const', which is a const pointer to > KPrinterPrivate, but not a pointer to const KPrinterPrivate (i.e. the pointer > is const, but the data it points to isn't). Which means that d->m_options > isn't a const object. Got it. Thanks. > The solution can be moving the data from KPrinterPrivate directly to the > class, if it's possible, or changing the code to: > > const QString& KPrinter::option(const QString& key) const > { > const KPrinterPrivate* const d_const = d; > return d_const->m_options[key]; > } ...or use something like: inline const QString& KPrinterPrivate::option(const QString& key) const { return m_options[key]; } and const QString& KPrinter::option(const QString& key) const { return d->option(key); } Though I'm not sure about the effect of "inline". Michael. -- ------------------------------------------------------------------ Michael Goffioul IMEC-DESICS-MIRA e-mail: goffioul@imec.be (Mixed-Signal and RF Applications) Tel: +32/16/28-8510 Kapeldreef, 75 Fax: +32/16/28-1515 3001 HEVERLEE, BELGIUM ------------------------------------------------------------------ >> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<