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

贵州整站优化seo平台推广方式营销方案

贵州整站优化seo平台,推广方式营销方案,wordpress改成中文,网站优化排名易下拉排名背景: 例如android jni 方法的签名, 这个需要每个用户都要知道具体类型,转化成签名, 要想写好签名, 必须很熟悉 类型对应的签名, 尤其java类对象要加个L, 本文将介绍怎么在编译期过程把类型转化成字符, 多个类型在尽性拼接. 定义基础数据结构 template<char ... ch> str…

背景:

  例如android jni 方法的签名, 这个需要每个用户都要知道具体类型,转化成签名, 要想写好签名, 必须很熟悉 类型对应的签名, 尤其java类对象要加个L, 本文将介绍怎么在编译期过程把类型转化成字符, 多个类型在尽性拼接.

定义基础数据结构

template<char ... ch>
struct charArray
{static const char *to_array(){static const char arr[sizeof ...(ch) + 1] = {ch...};return arr;}
};

这个里边详细介绍可变参数模版.

定义类型转化成charArray

emplate<typename T>
struct TypeToChar{};template<>
struct TypeToChar<int>{using TYPE = charArray<'I'>;static const char *to_array(){return TYPE::to_array();}
};template<>
struct TypeToChar<long>{using TYPE = charArray<'J'>;static const char *to_array(){return TYPE::to_array();}
};
template<>
struct TypeToChar<char>{using TYPE = charArray<'C'>;static const char *to_array(){return TYPE::to_array();}
};
template<>
struct TypeToChar<std::string>{using TYPE = charArray<'L','j', 'a','v','a','/','l', 'a', 'n', 'g', '/','S','t','r','i','n','g',';'>;static const char *to_array(){return TYPE::to_array();}
};

这里定义了类型, 以及对应的类型转化的签名, 接下来看下多个类型进行拼接带啊吗

拼接

template<typename ...T>
struct concat2{};template<char ...ch1, char ...ch2>
struct concat2<charArray<ch1...>, charArray<ch2...>>
{using TYPE=charArray<ch1..., ch2...>;static const char* to_array(){return charArray<ch1..., ch2...>::to_array();}
};template<typename ...T>
struct concat{};template<typename T, typename U>
struct concat<T,U>{using TYPE=typename concat2<T,U>::TYPE;static const char *to_array(){return TYPE::to_array();}
};

把两个类型参数包, 拼接成1个

多类型拼接

template<typename ...Args>
struct TypesToCharArray {};template<typename T>
struct TypesToCharArray<T> {using TYPE= typename TypeToChar<T>::TYPE;static const char *to_array(){return TYPE::to_array();}
};template<typename T, typename U>
struct TypesToCharArray<T, U>{using TYPE = typename concat<typename TypeToChar<T>::TYPE,typename TypeToChar<U>::TYPE>::TYPE;static const char *to_array(){return TYPE::to_array();}
};template<typename T, typename U, typename ...Args>
struct TypesToCharArray<T, U, Args...>{using TYPE= typename concat<typename TypesToCharArray<T,U>::TYPE, typename TypesToCharArray<Args...>::TYPE>::TYPE;static const char *to_array(){return TYPE::to_array();}
};

测试demo

int main()
{std::cout<<charArray<'a','b','c'>::to_array()<<std::endl;std::cout<<charArray<'e','f','g'>::to_array()<<std::endl;std::cout<<concat2<charArray<'a','b','c'>, charArray<'e', 'f', 'g'>>::to_array()<<std::endl;std::cout<<TypeToChar<int>::to_array()<<std::endl;std::cout<<TypesToCharArray<int>::to_array()<<std::endl;std::cout<<TypesToCharArray<int, std::string>::to_array()<<std::endl;std::cout<<TypesToCharArray<int, std::string,long,int>::to_array()<<std::endl;return 0;
}

输出结果

abc
efg
abcefg
I
I
ILjava/lang/String;
ILjava/lang/String;JI

http://www.hrbkazy.com/news/45612.html

相关文章:

  • 网站建设成功案例宣传网站排名软件有哪些
  • 香港的网站打不开seo推广任务小结
  • 信息网站推广百度的关键词优化
  • 网站开发定制企业关键词搜索热度查询
  • 学院门户网站建设必要性站长素材网站官网
  • 公司网站设计sem是什么分析方法
  • 视频网站主持人百度上海推广优化公司
  • 河南移动官网网站建设seo网站有优化培训班吗
  • 租用空间做网站最新国内新闻10条
  • 如何用代码做网站网络推广渠道都有哪些
  • 贵阳网站建设端觉湖南网站建设加盟代理
  • 北京网站建设备案域名收录查询
  • 网站站长统计怎么做自助发稿
  • 上传设计作品集的网站网站建设纯免费官网
  • 如何做网站域名备案最新新闻热点事件2024
  • 平板做网站服务器无锡网络推广外包
  • 红阳建设集团网站百度爱采购官网首页
  • 杭州网站建设 网络服务注册网站需要多少钱
  • 招生网站怎么做抖音seo推广
  • asp如何做网站网络营销推广目标
  • 北京服饰网站建设广告联盟自动挂机赚钱
  • 一个主机多个网站本地推广平台
  • wordpress 点赞 ajaxseo的培训网站哪里好
  • 中国最大的网站制作公司百度站长平台app
  • 中华人民共和国主席列表什么是搜索引擎优化?
  • 个人网站建设在哪里制作一个网站需要多少费用
  • 三一国际网站设计备案查询平台官网
  • 众车网是哪家公司网站百度公司是国企还是私企
  • wordpress文章加tabwin10优化工具
  • 做商品二维码检测的网站网页设计网站建设