$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2008-01-05 12:50:45
Vladimir Prus wrote:
> Frank Mori Hess wrote:
> 
>> On Thursday 03 January 2008 12:43, j.c. wrote:
>>> So the consensus here is to not use BOOST signals? I could implement
>> Noone  said that.
>>
>>> the calls another way that would not break when the application
>>> becomes multithreaded, which is likely to happen at some point. I
>>> would have to implement some sort of queue and lookup an id and then
>>> via a pointer trigger the target function along with parameter. Also I
>>> noticed that BOOST signals added a cool 300KB to my static lib,
>>> strippable to 200KB, which I am not too happy about since this lib's
>>> intentions was small size.
> 
> Ouch! Out of curiosity, does compiling with size optimization or
> disabled inlining has noticable effect on this? In general, it seems
> like code size was never much of concern inside boost.
Just guessing -- but it's most likely to be RTTI from polymorphic 
template instantiations:
     class A {
         // ...
         virtual ~A() { }
     };
     template< typename T > class B : public A {
         // implements abstract A
     }
     // ... instantate many B's
Now the compiler has to generate RTTI that can't be stripped for every 
instantiation of the 'B' template, because 'typeid(T)' is guaranteed to 
return a descriptions of the most derived class in client code of the 
library.
The bloat effect has been observed to be especially severe with GCC.
Regards,
Tobias