There is no way provided by C++ to get statistical information like that for you.
You'll have to write it.
Inside your project you could have a singleton class that tracks the sizes, or the largest size, then query the sizeof each class.
I don't see a need for a separate app unless you need the value at compile time.
In the distant past when I needed buffer pools of this sort, I created more than one, each with a predetermined size. Then when allocating an object, I picked the pool that had a size that is just big enough to hold it.
Allocating pools as powers of 2 might work for you.
*********************
As mentioned in Solution 3...
Rounding up can give you a good spread on the pool size.
Here's a handy code fragment for doing this.
auto newSize = ((((size - 1) >> 4) + 1) << 4);
What this code fragment does, is round up the size to the nearest multiple of sixteen.
Replacing the 4 with a 5 would round up to a multiple of 32 as it's base 2.