当前位置: 首页 > news >正文

网站发帖做业务重庆森林讲了什么故事

网站发帖做业务,重庆森林讲了什么故事,茶叶电子商务网站开发技术支持,简单的网页设计模板图片C那些事之结构化绑定 在聊结构化绑定之前,有几个面试问题,看看你会不会? 如何使用结构化绑定访问自定义类的私有成员?如何使用结构化绑定修改自定义类的成员呢? 这几个题目估计没几个人能答上来,题目与答案…

C++那些事之结构化绑定

在聊结构化绑定之前,有几个面试问题,看看你会不会?

  • 如何使用结构化绑定访问自定义类的私有成员?

  • 如何使用结构化绑定修改自定义类的成员呢?

这几个题目估计没几个人能答上来,题目与答案网上也都没有,基于这些问题,我们引出本文的内容:如何为自定义类型支持结构化绑定,里面有哪些坑?

注:懒人版,答案与代码已放星球。

为了让本文的内容更加丝滑,从示例出发。

1.自定义类型

如果给定一个类:

struct Foo {Foo(int64_t id, std::string data) : id_(id), data_(std::move(data)) {}void Print() { std::cout << "id = " << id_ << ", data = " << data_ << std::endl; }private:int64_t id_;std::string data_;
};

要让下面这个代码运行起来:

int main() {Foo f{12, "hello world"};const auto& [id, data] = f;std::cout << "id = " << id << ", data = " << data << std::endl;f.Print();
}

如果直接运行会编译:

cannot decompose inaccessible member 'Foo::id_' of 'const Foo'42 |   const auto& [id, data] = f;

那么怎么做呢?

2.支持结构化绑定

这个问题我们使用两个步骤:

1.特化 std::tuple_sizestd::tuple_element

namespace std {template <>struct tuple_size<Foo> : std::integral_constant<std::size_t, 2> {};template <>struct tuple_element<0, Foo> {using type = int64_t;};template <>struct tuple_element<1, Foo> {using type = std::string;};
}

2.为上面的结构体添加友元get函数,然后实现即可:

template <std::size_t Index>
decltype(auto) get(const Foo& f);template <>
decltype(auto) get<0>(const Foo& f) {return f.id_;
}template <>
decltype(auto) get<1>(const Foo& f) {return f.data_;
}

此时便可以正常的工作了,得到输出:

id = 12, data = hello world
id = 12, data = hello world

最后,抛出几个问题:

  • 上面提供的是只读访问,如果在访问的时候修改const auto &会发生什么?

例如:

auto& [id, data] = f;
  • 如何支持对类成员的修改访问?

即,让这个语句能够正常运行

auto& [id, data] = f;

好了,本节完,欢迎留言区交流。

揭秘答案,戳下方呀~

b19e823f519d9e2e214a5e882ebe3ddc.jpeg

往期推荐:

向量数据库milvus源码剖析之开篇

热度更新,手把手实现工业级线程池

玩转cpp小项目星球3周年了!

57d2ef3609413b1caeffc528841ba663.jpeg

http://www.yidumall.com/news/42589.html

相关文章:

  • 员工管理网站模板百度识图搜索网页版
  • 网站 栏目做下拉线上推广方式有哪些
  • 做网站要学哪些班级优化大师免费下载学生版
  • 潍坊知名网站建设价格低seo网站优化服务
  • 什么是营销网站建设游戏app拉新平台
  • 做网站必须网站备案广州网络seo公司
  • 北京网站定制流程泰州seo网络公司
  • 百度网页打不开无法访问怎么办游戏优化是什么意思?
  • 揭阳网站建设价格网站推广和seo
  • 网站建设书籍推荐成都计算机培训机构排名前十
  • 用钢铁侠做网站seo批量建站
  • 石家网站建设公司排名青岛网站建设技术外包
  • 项目管理软件哪个比较好南京网站seo
  • 海南网站搭建价格昆明seo技术培训
  • 大连网站建设方案维护中文网站排行榜
  • 潍坊网站建设公司有哪些内容推广普通话的内容
  • 肥乡邯郸做网站网上培训
  • 网页设计网站建设360网址大全
  • 刚刚地震最新消息今天2022360优化大师最新版的功能
  • 一流本科专业建设点网站投资网站建设方案
  • 苏州网站建设网站建设艾滋病多长时间能查出来
  • 哪里有响应式网站企业什么是关键词
  • 房产网 最新楼盘价格泉州关键词优化软件
  • 淘宝做海淘产品 网站折扣变化快网络推广策划方案怎么写
  • 黄骅港潮汐广州营销seo
  • 网站后台如何修改新闻发布时间关键词指数查询工具
  • 欧美网站特点站长工具爱情岛
  • python做网站多么seo是什么的
  • 用凡科做网站有自己的域名营销网站
  • 网站支持ipv6怎么做seo培训多少钱