Boost logo

Boost :

From: Jason Hise (chaos_at_[hidden])
Date: 2005-05-07 13:14:31


David Abrahams wrote:

>"Andrei Alexandrescu (See Website For Email)" <SeeWebsiteForEmail_at_[hidden]> writes:
>
>
>
>>Pavel Vozenilek wrote:
>>
>>
>>>"Jason Hise" wrote:
>>>
>>>
>>>
>>>>In many cases I am getting the warning that specific classes have
>>>>virtual functions, but non virtual destructors. This is
>>>>intentional, because they only have virtual functions in debug mode
>>>>(pure virtual, to make the singleton uncreatable by client code)
>>>>and will never be destroyed through a pointer to base. I wanted to
>>>>avoid the overhead of a vtable in release mode. Is there a way to
>>>>disable this specific warning while compiling with gcc?
>>>>
>>>>
>>>>
>>>No, there's no way to disable this or that warning using pragma
>>>in GCC (though I read somewhere they will finally add such feature).
>>>Perhaps you may use a kludge with conditional macros.
>>>
>>>
>>Wouldn't making the destructor virtual in debug mode serve as a
>>satisfactory solution?
>>
>>
I suppose this would work. The only problem is that client code must
remember to do this as well if they choose for their singleton to
provide a destructor.

>
>Or I guess you could pick one of the many other mechanisms used to
>make a class abstract (?)
>
To which mechanisms are you referring? AFAIK, a pure virtual function
is the only way to automatically make any derived classes un-instantiable.

-Jason


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk