今天看啥  ›  专栏  ›  everystep

一个让代码可读性暴增的现代C++特性,同事看了都说好!

everystep  · 公众号  ·  · 2024-11-24 07:00
    

文章预览

嘿,小伙伴们!你是否经常遇到这样的烦恼:某个值它可能存在,也可能不存在,就像薛定谔的猫一样?🤔 比如说: 想找找配置文件里有没有那个神秘的设置项 ⚙️ 在数据库里寻找那个可能已经"蒸发"的用户记录 🔍 解析用户输入的数据(天知道他们会输入什么奇怪的东西!)📝 在 C++17 这位英雄出现之前,我们都是这样痛苦地处理的: // 😅 老方法1:用指针来搞定 User*  findUser ( const   string &  name)   {      // 找到了就返回指针,找不到就返回 nullptr      // 但是等等...这个指针谁来删啊?记不住删除的话就内存泄漏啦!😱 } // 😅 老方法2:用 pair 大法 pair bool >  findUser ( const   string &  name)  {      // 返回一个值和一个标志位      // 但是...就算没找到也要构造一个 User 对象,这不是白白浪费资源嘛!😫 } 但是!现在有了 std::option ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览