跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • c++ 内置类型和类如何一起处理
未分類
5 4 月 2020

c++ 内置类型和类如何一起处理

c++ 内置类型和类如何一起处理

資深大佬 : 23571113 55

在写序列化部分的时候遇到一点问题,我想对不同类型共用同一套序列化的逻辑。 对于类,我的做法是定义接口,类似:

class Interface { public:  cstring serialize(); }; 

然后调用接口来做序列化

template <typename T> cstring do_serialize(const T &t) {  return t.serialize(); }  template <typename T, typename... Args> cstring do_serialize(const T &t, const Args &... object) {  return t.serialize() + do_serialize(object...); } 

但是内置类型没法实现 serialize(),我该怎么处理才比较好。

大佬有話說 (4)

  • 資深大佬 : wwqgtxx

    模板可以对类型特化

  • 主 資深大佬 : 23571113

    @wwqgtxx 感谢,我 nc 了,想着去用 if 判断类型了,于是 int,const int,const int & …都不是一个类型把我搞蒙了。

  • 資深大佬 : wutiantong

    你不要用这个 class Interface,它很不 cpp
    你要用这个:
    template<class T>
    struct serialize_op
    {
    cstring operator() (T const &) const;
    };

  • 資深大佬 : wevsty

    如果是 C++17 以上,在模板里判断类型也很方便的。
    “`
    template<typename T>
    auto do_serialize(T t)
    {
    if constexpr(std::is_integral<T>::value)
    {return std::to_string(t);}
    else
    {return t;}
    }
    “`

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具