diff options
Diffstat (limited to 'include/llvm/ADT/SmallVector.h')
| -rw-r--r-- | include/llvm/ADT/SmallVector.h | 17 | 
1 files changed, 11 insertions, 6 deletions
diff --git a/include/llvm/ADT/SmallVector.h b/include/llvm/ADT/SmallVector.h index 5f0a55bec46e..1c42f29771b3 100644 --- a/include/llvm/ADT/SmallVector.h +++ b/include/llvm/ADT/SmallVector.h @@ -78,21 +78,21 @@ protected:      return BeginX == static_cast<const void*>(&FirstEl);    } +  /// grow_pod - This is an implementation of the grow() method which only works +  /// on POD-like data types and is out of line to reduce code duplication. +  void grow_pod(size_t MinSizeInBytes, size_t TSize); + +public:    /// size_in_bytes - This returns size()*sizeof(T).    size_t size_in_bytes() const {      return size_t((char*)EndX - (char*)BeginX);    } - +      /// capacity_in_bytes - This returns capacity()*sizeof(T).    size_t capacity_in_bytes() const {      return size_t((char*)CapacityX - (char*)BeginX);    } -  /// grow_pod - This is an implementation of the grow() method which only works -  /// on POD-like data types and is out of line to reduce code duplication. -  void grow_pod(size_t MinSizeInBytes, size_t TSize); - -public:    bool empty() const { return BeginX == EndX; }  }; @@ -738,6 +738,11 @@ public:  }; +template<typename T, unsigned N> +static inline size_t capacity_in_bytes(const SmallVector<T, N> &X) { +  return X.capacity_in_bytes(); +} +  } // End llvm namespace  namespace std {  | 
