unresolved symbols from value.cpp/.h

André Wöbbeking Woebbeking at onlinehome.de
Wed Feb 1 19:12:20 GMT 2006


On Tuesday 24 January 2006 20:18, Christian Ehrlicher wrote:
> Maks Orlovich schrieb:

> > There is no ugly hack there. Just a standard language idiom. These
> > methods should never be used. The only way to ensure that is to
> > declare them and mark them private, as otherwise public defaults
> > will be generated. And as they can't ever do anything sensible,
> > there is no definition. (The only acceptable one would be abort(),
> > basically). The point is, ValueImp's are not copyable, even though
> > they're exported outside the library.
> >
> > And again, the only solution is a #define to disable those for the
> > broken compilers out there.
>
> Ok, I'll stop calling it ugly and make a define :)

There's another way, the Boost way. Declare a class

  class noncopyable
  {
   protected:
      noncopyable() {}
      ~noncopyable() {}
   private:  // emphasize the following members are private
      noncopyable( const noncopyable& );
      const noncopyable& operator=( const noncopyable& );
  };

(copied from boost/noncopyable.hpp) somewhere without the EXPORT define 
and then just derive i.e. ValueImp from noncopyable. So there're no 
unresolved symbols in ValueImp.

Attached is the complete boost header.


Cheers,
André
-------------- next part --------------
A non-text attachment was scrubbed...
Name: noncopyable.hpp
Type: text/x-c++hdr
Size: 1014 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20060201/c6466aae/attachment.hpp>


More information about the kde-core-devel mailing list