1. 程式人生 > 其它 >4.base之Types的實現

4.base之Types的實現

技術標籤:從輪子造起——一個muduo庫的實現

Types

在名稱空間中引入了std::string
新增兩個行內函數implicit_cast和down_cast
實現了memZero

實現

inline void memZero(void *p, size_t n) {
      memset(p, 0, n);
}

template<typename To, typename From>
inline To implicit_cast(From const& f) {
      return f;
}

template<typename To, typename From>
inline To down_cast(From* f) {
      if(false) {
            implicit_cast<From*, To>(0);
      }
      assert(f == NULL || dynamic_cast<To>(f) != NULL);
      return static_cast<To>(f);
}