Google C++ style guide

Don nospam at nospam.com
Mon Oct 5 00:40:18 PDT 2009


Jeremie Pelletier wrote:
> Christopher Wright wrote:
>> Jeremie Pelletier wrote:
>>> Me neither, in fact I would *love* to see a -nrtti switch in DMD to 
>>> disable the generation of all ClassInfo and TypeInfo instances, along 
>>> with a version identifier, maybe "version = RTTI_Disabled;" to let 
>>> code handle it.
>>>
>>> I use RTTI a lot for simple debugging like printing the name of a 
>>> class or type in generic code or meta programming, but not at all in 
>>> production code. Most of the time I can rely on .stringof and a 
>>> message pragma to do the same.
>>
>> You use RTTI for dynamic casts, variadic functions, and the default 
>> implementation of toString. You could safely eliminate some fields 
>> from ClassInfo and TypeInfo,  but you can't get rid of them entirely.
>>
>> The best you can do is make TypeInfo entirely opaque (no fields) and 
>> only include the base class, interfaces, and name for ClassInfo.
> 
> Yeah something like "don't generate type names" and other extra 
> informations would be a definive plus, that makes reverse engineering 
> too easy :)

I've often thought that a pragma for a module to "don't generate module 
info" would be very useful for executable size. I'm particularly 
thinking of bindings like the Win32 headers, where there are a hundred 
modules, and the module info isn't actually useful. There could be a 
default ModuleInfo instance, with module name "ModuleInfoUnavailable", 
which all such modules would point to.



More information about the Digitalmars-d mailing list