Go to the documentation of this file.00001 #ifndef VIENNAGRID_TRAITS_CONTAINER_HPP
00002 #define VIENNAGRID_TRAITS_CONTAINER_HPP
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <vector>
00023 #include <limits>
00024 #include "viennagrid/forwards.h"
00025
00030 namespace viennagrid
00031 {
00032
00034 namespace traits
00035 {
00036
00038 template <typename T>
00039 void reserve(T & t, std::size_t new_size)
00040 {
00041
00042 }
00043
00045 template <typename T, typename A>
00046 void reserve(std::vector<T, A> & vec, std::size_t new_size)
00047 {
00048 vec.reserve(new_size);
00049 }
00050
00051
00053 template <typename T>
00054 void resize(T & t, std::size_t new_size)
00055 {
00056
00057 }
00058
00060 template <typename T, typename A>
00061 void resize(std::vector<T, A> & vec, std::size_t new_size)
00062 {
00063 vec.resize(new_size);
00064 }
00065
00066
00068 template <typename T>
00069 std::size_t size(T & t)
00070 {
00071
00072 return t.size();
00073 }
00074
00076 template <typename T>
00077 std::size_t capacity(T & t)
00078 {
00079 return std::numeric_limits<std::size_t>::max();
00080 }
00081
00083 template <typename T, typename A>
00084 std::size_t capacity(std::vector<T, A> & vec, std::size_t new_size)
00085 {
00086 return vec.capacity();
00087 }
00088
00089
00090 }
00091 }
00092
00093 #endif