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

网站开发g制作个人网站的要求

网站开发g,制作个人网站的要求,wordpress页面怎么加入php网页,企业网站建设中图片优化的方法文章最后给出了汇总的代码#xff0c;可直接运行 1. typelist是什么 typelist是一种用来操作类型的容器。和我们所熟知的vector、list、deque类似#xff0c;只不过typelist存储的不是变量#xff0c;而是类型。 typelist简单来说就是一个类型容器#xff0c;能够提供一… 文章最后给出了汇总的代码可直接运行 1. typelist是什么 typelist是一种用来操作类型的容器。和我们所熟知的vector、list、deque类似只不过typelist存储的不是变量而是类型。 typelist简单来说就是一个类型容器能够提供一系列的操作。 本文将展示使用元编程实现typelist。 2. 要实现的typelist的接口 在此列举一下即将要编写的typelist的所有接口 typelist要实现的容器类型。fronttypelist获取容器中的第一个元素。sizetypelist获取容器的元素数量。pop_fronttypelist, elem移出第一个元素。push_fronttypelist, elem向开头插入一个元素。push_backtypelist, elem向结尾插入一个元素。replace_fronttypelist, elem替换第一个元素。is_emptytypelist判断是否为空。findtypelist, index查找下标为index的元素。get_maxsize_typetypelist容器中尺寸sizeof最大的元素。reversetypelist翻转容器中的元素。  3. 接口实现 3.1 容器 templatetypename... Elems struct typelist{}; 3.2 fronttypelist templatetypename TPLT// typelist的简写 struct front;struct fronttypelistFirstElem, OtherElems... {using type FirstElem; }; 3.3 sizetypelist templatetypename TPLT struct size;templatetypename... Elems struct sizetypelistElems... {static inline const value sizeof...(Elems); }; 3.4 pop_fronttypelist, elem templatetypename TPLT struct pop_front;templatetypename FirstElem, typename... OtherElems struct pop_fronttypelistFirstElem, OtherElems... {using type typelistOtherrElems...; }; 3.5 push_fronttypelist, elem templatetypename TPLT, typename newElem struct push_front;templatetypename... Elems, typename newElem struct push_fronttypelistElems..., newElem {using type typelistnewElem, Elems...; }; 3.6 push_backtypelist, elem templatetypename TPLT, typename newElem struct push_back;templatetypename... Elems, typename newElem struct push_backtypelistElems..., newElem {using type typelistElems..., newElem; }; 3.7 replace_frontTPLT, elem templatetypename TPLT, typename Elem struct replace_front;templatetypename FirstElem, typename... OtherElems, typename Elem struct replace_fronttypelistFirstElem, OtherElems..., Elem {using type typelistElem, OtherElems...; }; 3.8 is_emptyTPLT templatetypename TPLT struct is_empty;templatetypename... Elems struct is_empty {static inline const bool value sizeof...(Elems) 0; }; 3.9 findtypelist, index templatetypename TPLT, size_t index struct find : findtypename pop_frontTPLT::type, index - 1 {};templatetypename TPLT struct findTPLT, 0 :frontTPLT { }; 3.10 get_maxsize_typetypelist templatetypename TPLT struct get_maxsize_type { private:using FirstType typename frontTPLT::type;using RemainLT typename pop_frontTPLT::type;using RemainMaxType typename get_maxsize_typeRemainLT::type; public:using type conditional_t (sizeof(FirstType) sizeof(RemainMaxType)),FirstType, RemainMaxType ; };templatetypename Elem struct get_maxsize_typetypelistElem {using type Elem; };template struct get_maxsize_typetypelist; 3.11 reversetypelist templatetypename TPLT struct reverse { private:using FirstElem typename frontTPLT::type;using RemainTL typename pop_frontTPLT::type;using ReversedRemainTL typename reverseRemainTL::type; public:using type typename push_backReversedRemainTL, FirstElem::type; };template struct reversetypelist {using type typelist; }; 或 templatetypename TPLT, bool is_emptyTPLT::value struct reverse;templatetypename TPLT struct reverseTPLT, false { private:using FirstElem typename frontTPLT::type;using RemainTL typename pop_frontTPLT::type;using ReversedRemainTL typename reverseRemainTL::type; public:using type typename push_backReversedRemainTL, FirstElem::type; };templatetypename TPLT struct reverseTPLT, true {using type typelist; }; 4. 完整代码 #include iostream #include string #include boost/type_index.hppusing namespace std;templatetypename T class TypeGetter { public:static inline const std::string name boost::typeindex::type_id_with_cvrT().pretty_name(); };namespace myTypeList {templatetypename... Tstruct typelist {};templatetypename TPLTstruct front;templatetypename FirstType, typename... Othersstruct front typelistFirstType, Others...{using type FirstType;};templatetypename TPLTstruct size;templatetypename... Argsstruct sizetypelistArgs...{static const inline size_t value sizeof...(Args);};templatetypename TPLTstruct is_empty;templatetypename... Elemsstruct is_emptytypelistElems...{static constexpr bool value sizeof...(Elems) 0;};templatetypename TPLTstruct pop_front;templatetypename FirstType, typename... Othersstruct pop_front typelistFirstType, Others... {using type typelistOthers...;};templatetypename TPLT, typename Tstruct push_front;templatetypename... Types, typename Tstruct push_fronttypelistTypes..., T{using type typelistT, Types...;};templatetypename TPLT, typename Tstruct push_back;templatetypename... Types, typename Tstruct push_backtypelistTypes..., T{using type typelistTypes..., T;};templatetypename TPLT, typename newElemstruct replace_front;templatetypename FirstElem, typename... OtherElems, typename newElemstruct replace_fronttypelistFirstElem, OtherElems..., newElem{using type typelistnewElem, OtherElems...;};templatetypename TPLT, size_t indexstruct find : findtypename pop_frontTPLT::type, index - 1{};/*和下面的写法是等价的templatetypename TPLT, size_t indexstruct find{using type typename findtypename pop_frontTPLT::type, index - 1::type;};*/templatetypename TPLTstruct findTPLT, 0 :frontTPLT{};/*get_maxsize_type: 获取typelist中尺寸最大的类型*/templatetypename TPLTstruct get_maxsize_type{private:using FirstType typename frontTPLT::type;using RemainLT typename pop_frontTPLT::type;using RemainMaxType typename get_maxsize_typeRemainLT::type;public:using type conditional_t (sizeof(FirstType) sizeof(RemainMaxType)),FirstType, RemainMaxType ;};templatetypename Elemstruct get_maxsize_typetypelistElem{using type Elem;};templatestruct get_maxsize_typetypelist;/*reverse: 翻转typelist*//*// 版本一templatetypename TPLTstruct reverse{private:using FirstElem typename frontTPLT::type;using RemainTL typename pop_frontTPLT::type;using ReversedRemainTL typename reverseRemainTL::type;public:using type typename push_backReversedRemainTL, FirstElem::type;};templatestruct reversetypelist{using type typelist;};*/templatetypename TPLT, bool is_emptyTPLT::valuestruct reverse;templatetypename TPLTstruct reverseTPLT, false{private:using FirstElem typename frontTPLT::type;using RemainTL typename pop_frontTPLT::type;using ReversedRemainTL typename reverseRemainTL::type;public:using type typename push_backReversedRemainTL, FirstElem::type;};templatetypename TPLTstruct reverseTPLT, true{using type typelist;}; }class A {};int main() {using TPL_1 myTypeList::typelistchar, short, int, A, double;using TPL_2 myTypeList::typelist;cout TPL_1 的第一个类型为 TypeGetter myTypeList::frontTPL_1::type ::name endl;//cout TPL_2 的第一个类型为 TypeGetter myTypeList::frontTPL_2::type ::name endl;cout TPL_1 的size为 myTypeList::sizeTPL_1::value endl;cout TPL_2 的size为 myTypeList::sizeTPL_2::value endl;cout TPL_1 的pop_front为 TypeGetter myTypeList::pop_front TPL_1 ::type ::name endl;//cout TPL_2 的pop_front为 TypeGetter myTypeList::pop_front TPL_2 ::type ::name endl;cout TPL_1 push_front bool 为 TypeGetter myTypeList::push_frontTPL_1, bool::type::name endl;cout TPL_2 push_front bool 为 TypeGetter myTypeList::push_frontTPL_2, bool::type::name endl;cout TPL_1 push_back bool 为 TypeGetter myTypeList::push_backTPL_1, bool::type::name endl;cout TPL_2 push_back bool 为 TypeGetter myTypeList::push_backTPL_2, bool::type::name endl;cout TPL_1 replace_front with char 为 TypeGetter myTypeList::replace_front TPL_1, char ::type::name endl;cout TPL_1 index 2 type 为 TypeGetter myTypeList::findTPL_1, 2::type ::name endl;cout TPL_1 max size type 为 TypeGettermyTypeList::get_maxsize_typeTPL_1::type::name endl;cout TPL_1 为 TypeGetterTPL_1::name endl;cout TPL_1 reverse 为 TypeGettermyTypeList::reverseTPL_1::type::name endl;return 0; }运行结果如下
http://www.pierceye.com/news/113784/

相关文章:

  • 门户网站建设汇报如果在网上接网站建设项目
  • 网站开发文档是什么概念注册个体户
  • 双井做网站的公司app开发和网站开发价格
  • 电梯企业网站制作中山网站建设电话
  • 做网站推广哪些跨境电商平台企业
  • 域名注册网站推荐方案模板
  • 亚运村网站建设北京工商注册官网
  • sql2005做网站书店网站建设人员分配
  • 工商局网站怎么做股东实名认证石家庄网站建设公司怎么样
  • 做公众号的模版的网站国内网站做国外服务器
  • 做国际网站的上海高端网站公司wordpress 4.9.6 下载
  • 学校集约网站建设最牛餐饮营销手段
  • wordpress影视站网站太花哨
  • 青岛 机械 中企动力提供网站建设小说网站怎么做空间小
  • 通江县网站建设做网站到八方资源网怎么样
  • 国家网站建设ssh架构jsp网站开发
  • 浦东新区手机网站设计网络营销做得好的产品
  • 浙江市建设网站市场监督管理局电话举报电话
  • 企业网站的建设的功能定位菏泽百度推广公司电话
  • linux系统怎么做网站女生去住建局好不好
  • 自己搭建环境建设网站网站开发温州
  • 下沙做网站软件erp系统的主要功能
  • 郑州网站建设专家最新手机排行榜2021
  • 宠物店网站建设策划书重庆网站建设 红旗河沟
  • 一般网站自己可以做播放器吗最简单的一个网站开发
  • 网站的开发商务网站安全方案设计
  • 如何建立网站教材漳诈网站建设
  • 开家网站设计公司广州网站建设app开发
  • 建站服务公司网站源码成都游戏外包公司排名
  • 呼伦贝尔网站建设呼伦贝尔astro wordpress