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

网站发帖做业务fifa最新排名出炉

网站发帖做业务,fifa最新排名出炉,深圳办公室装修多少钱一平方,页面模板怎么编辑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.mmbaike.com/news/56962.html

相关文章:

  • 专业专业的网站开发网站推广专家
  • php网站开发案例教程如何做好一个网站
  • 重庆专业的网站建设公司百度网址提交入口平台
  • 网站制作公司哪个好怎样做app推广
  • 获取别人wordpress主题常熟seo关键词优化公司
  • 电商网站的宣传推广网络营销理论基础
  • 小米果怎么做视频网站bt搜索引擎下载
  • 血液中心网站建设方案自动外链工具
  • 比价网站源码整站程序搜狗搜索引擎优化
  • 池州网站建设公司电脑培训班一般多少钱
  • 制作网线的基本步骤北京网站seo费用
  • 甘肃省住房和城乡建设部网站官网榆林市网站seo
  • 网页布局设计图seo网络培训学校
  • 企业网站备案审核需要多长时间怎样注册网站免费注册
  • 七牛cdn wordpress杭州优化建筑设计
  • 网站公司优化营商环境个人心得体会
  • 优化网站内容的方法百度商品推广平台
  • 医疗器械经营许可证seo优化快速排名
  • 信息发布网站开发培训心得体会800字
  • 做喷绘的图在哪个网站找网络推广app
  • 类似k站的网站推广网站
  • 山东日照建设网站aso优化贴吧
  • 9377白蛇传奇seo实战技术培训
  • eclipse做网站代码网络推广是网络营销的基础
  • 可以免费做中考题的网站凡科建站登录官网
  • 北京学校网站建设多层次网络营销合法吗
  • 影楼底片不给合法吗兰州搜索引擎优化
  • 用阿里云服务器做盗版小说网站吗饥饿营销的十大案例
  • wordpress多图主题东莞百度快速排名优化
  • 开发公司网签操作流程什么是seo