17 #ifndef __deal2__memory_consumption_h 18 #define __deal2__memory_consumption_h 21 #include <deal.II/base/config.h> 22 #include <deal.II/base/std_cxx1x/shared_ptr.h> 108 template <
typename T>
197 template <
typename T>
260 template <
typename T>
279 template <
typename T,
int N>
348 template <
typename T>
373 template <
typename A,
typename B>
385 template <
typename T>
397 template <
typename T>
427 template <
typename T>
457 return sizeof(
short int);
465 return sizeof(
short unsigned int);
481 return sizeof(
unsigned int);
489 return sizeof(
unsigned long int);
497 return sizeof(
unsigned long long int);
505 return sizeof(float);
521 return sizeof(
long double);
525 template <
typename T>
529 return sizeof(std::complex<T>);
537 return sizeof(s) + s.length();
542 template <
typename T>
545 std::size_t mem =
sizeof(std::vector<T>);
546 const unsigned int n =
static_cast<unsigned int>(v.size());
547 for (
unsigned int i=0; i<n; ++i)
549 mem += (v.capacity() - n)*
sizeof(T);
555 template <
typename T,
int N>
559 for (
unsigned int i=0; i<N; ++i)
569 return v.capacity() / 8 +
sizeof(v);
577 return (v.capacity() *
sizeof(int) +
586 return (v.capacity() *
sizeof(
double) +
595 return (v.capacity() *
sizeof(float) +
604 return (v.capacity() *
sizeof(char) +
613 return (v.capacity() *
sizeof(
unsigned char) +
619 template <
typename T>
623 return (v.capacity() *
sizeof(T *) +
629 template <
typename A,
typename B>
639 template <
typename T>
649 template <
typename T>
663 return sizeof(
void *);
668 template <
typename T>
673 return sizeof(std_cxx1x::shared_ptr<T>);
678 template <
typename T>
683 return t.memory_consumption();
687 DEAL_II_NAMESPACE_CLOSE
std::size_t memory_consumption(const T &t)