>> Vector for example is declared as vector<T, Alloc>
Is that a yes, or are you saying you can use other tricks (your own allocator) to identify how much memory is used by the vector? If so, what about objects from other libraries, either third party or from within your group, that cannot be modified to keep track of their specific memory usage?