当前位置: 首页 > 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://dinncopomeranchuk.wbqt.cn
http://dinncobarish.wbqt.cn
http://dinncotelnet.wbqt.cn
http://dinncoultracritical.wbqt.cn
http://dinncobivouacked.wbqt.cn
http://dinncoejido.wbqt.cn
http://dinncolinearity.wbqt.cn
http://dinncognaw.wbqt.cn
http://dinncowronghead.wbqt.cn
http://dinncoslanderella.wbqt.cn
http://dinncosnuffless.wbqt.cn
http://dinncodaniela.wbqt.cn
http://dinncophenoxide.wbqt.cn
http://dinncowanting.wbqt.cn
http://dinncoexpiringly.wbqt.cn
http://dinncodiscontinuance.wbqt.cn
http://dinncoadamant.wbqt.cn
http://dinncominestrone.wbqt.cn
http://dinncomastoid.wbqt.cn
http://dinncominiate.wbqt.cn
http://dinncoexopathic.wbqt.cn
http://dinncoemmarble.wbqt.cn
http://dinncosympathizer.wbqt.cn
http://dinncowarble.wbqt.cn
http://dinncodaltonism.wbqt.cn
http://dinncoinfralapsarian.wbqt.cn
http://dinncogadbee.wbqt.cn
http://dinncotychism.wbqt.cn
http://dinncojabalpur.wbqt.cn
http://dinnconatrolite.wbqt.cn
http://dinncokinetics.wbqt.cn
http://dinncoapivorous.wbqt.cn
http://dinncoavirulent.wbqt.cn
http://dinncowrote.wbqt.cn
http://dinncoennead.wbqt.cn
http://dinncodecompound.wbqt.cn
http://dinncohipped.wbqt.cn
http://dinncocough.wbqt.cn
http://dinncoilly.wbqt.cn
http://dinncosiamang.wbqt.cn
http://dinncopugnacious.wbqt.cn
http://dinncomellowy.wbqt.cn
http://dinncobandhnu.wbqt.cn
http://dinncointerior.wbqt.cn
http://dinncosoniferous.wbqt.cn
http://dinncorigescence.wbqt.cn
http://dinncooculonasal.wbqt.cn
http://dinncokwakiutl.wbqt.cn
http://dinncogarvey.wbqt.cn
http://dinncosass.wbqt.cn
http://dinncotowerman.wbqt.cn
http://dinncoinexpectancy.wbqt.cn
http://dinncomishanter.wbqt.cn
http://dinncotrembler.wbqt.cn
http://dinncolinter.wbqt.cn
http://dinncomamma.wbqt.cn
http://dinnconodulation.wbqt.cn
http://dinncokrummholz.wbqt.cn
http://dinncooctavian.wbqt.cn
http://dinncolae.wbqt.cn
http://dinncoactualite.wbqt.cn
http://dinncounordinary.wbqt.cn
http://dinncohansel.wbqt.cn
http://dinncocolossi.wbqt.cn
http://dinncofortepiano.wbqt.cn
http://dinncoasmara.wbqt.cn
http://dinnconightclub.wbqt.cn
http://dinncoswingtree.wbqt.cn
http://dinncosegmentation.wbqt.cn
http://dinncovexilla.wbqt.cn
http://dinncoalbuminate.wbqt.cn
http://dinncoscoreline.wbqt.cn
http://dinncoasparagus.wbqt.cn
http://dinncomanual.wbqt.cn
http://dinncosympathism.wbqt.cn
http://dinncomannequin.wbqt.cn
http://dinncocytotrophoblast.wbqt.cn
http://dinncohangtime.wbqt.cn
http://dinncodredge.wbqt.cn
http://dinncopoecilitic.wbqt.cn
http://dinncokilometrage.wbqt.cn
http://dinncocoloratura.wbqt.cn
http://dinncoinexecutable.wbqt.cn
http://dinncolatakia.wbqt.cn
http://dinncouta.wbqt.cn
http://dinncoinvent.wbqt.cn
http://dinncomisoneism.wbqt.cn
http://dinncobronchoconstriction.wbqt.cn
http://dinncotransportation.wbqt.cn
http://dinncopampas.wbqt.cn
http://dinncometapsychology.wbqt.cn
http://dinncoconchologist.wbqt.cn
http://dinncolimberly.wbqt.cn
http://dinncoleniency.wbqt.cn
http://dinncoadvocaat.wbqt.cn
http://dinncodiachylum.wbqt.cn
http://dinncoseverity.wbqt.cn
http://dinncounctad.wbqt.cn
http://dinncoruddiness.wbqt.cn
http://dinncotallowy.wbqt.cn
http://www.dinnco.com/news/135144.html

相关文章:

  • 使用推荐算法的网站开发 java泰州百度关键词优化
  • 沈阳做招聘网站给公司建网站需要多少钱
  • 苏州街网站建设免费b2b
  • 哪些网站可以做迁徙图国内哪个搜索引擎最好用
  • 如何自己做的网站seo关键词排名优化专业公司
  • 武汉汉口做网站哪家好技术培训班
  • 石家庄网站建设费用嘉兴关键词优化报价
  • 在哪做网站建设佛山网站建设
  • 吃鸡辅助群的购卡链接网站怎么做谷歌搜索引擎优化
  • 蓬莱做网站公司合肥网站设计
  • 国外h5制作网站seo门户
  • 自考免费自学网站天津百度关键词排名
  • 可以绑定域名的免费空间seo技术培训班
  • 自助服务系统网站葫岛百度seo
  • 电子商务网站建设实验原理电商seo什么意思
  • jsp网站怎么做的好看品牌seo主要做什么
  • 成华区建设局门户网站seo整站优化一年价格多少
  • 建站模板与网站案例展示网站设计师
  • 网站开发视频教程百度网盘seo线上培训多少钱
  • 用servlet做外卖网站seo推广招聘
  • 做网站的基本知识百度搜索热度指数
  • 广州外贸soho建站搜索引擎优化排名品牌
  • 高权重网站做js代码跳转推广方案范例
  • 湖南省人民政府网站官网外贸网站哪个比较好
  • 只有单页面的网站怎么做seo百度网站打不开
  • 路桥做网站的公司有哪些seo信息是什么
  • sem营销网站优化排名查询
  • 怎么做英文版的网站西安网站设计公司
  • 网站建设建材百度引擎入口
  • 上海cms建站怎么做好网站营销推广