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

新八建设集团有限公司网站天河做网站哪家好

新八建设集团有限公司网站,天河做网站哪家好,wordpress文章调用代码,凡科网站登录入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.yayakq.cn/news/166096/

相关文章:

  • 门户网站推广怎么做建网站费用会计分录
  • 上海网站建设免费推荐江苏市场监督管理局
  • html网站登录界面模板下载网站建设拍金手指排名贰拾
  • 怎么看别的网站是那个公司做的为什么建设厅的网站不好打开
  • 网站建设 质量标准做网站石材推销
  • 郑州做网站优化电话四川住房城乡建设网站
  • 建设网站你认为需要注意哪些问题禹城做网站
  • 软件开发怎么自学天津关键词优化专家
  • 俄罗斯在线 网站制作专做童装的网站
  • 官网网站开发wordpress query post
  • 长春网站制作一般需要多少钱国内有实力的软件开发公司
  • 网站开发从零到微信公众平台注册官网入口
  • 怎么做可以把网站图片保存下来吗wordpress本地打不开
  • 网站开发团队人员构成黑龙江省建设厅的网站首页
  • 网站开发和网站建设网站开发公司起名字
  • 手机网站给一个wordpress网站建设中
  • 网站租用网站下载的视频怎么变成本地视频
  • 网站建设企业熊掌号精品简历网官网
  • 中国建设监理协会化工监理分会网站服装网站建设的技术可行性
  • 新增网站推广教程上海中风险地区地图
  • 域名哪个网站续费wordpress获取权限
  • 做网站接私活网站开发 js
  • 搭建本地视频网站一起做网站下载数据包
  • 介绍旅游美食的网站模板爱站工具查询
  • 普洱做网站的报价wordpress作作品集
  • 开福区城乡建设局门户网站设计周
  • 宁夏建设厅官方网站深圳好点的网站建设公司
  • 画册排版设计网站北京seo分析
  • 如何判断网站数据库类型可以做软文推广的网站
  • 哪里学网站建设与管理做网站别人输账号代码