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

贵州整站优化seo平台今日新闻最新头条

贵州整站优化seo平台,今日新闻最新头条,域名网站模板,DW做旅游网站毕业设计模板背景: 例如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.ds6.com.cn/news/33304.html

相关文章:

  • 网站设计和营销网站权重查询工具
  • 中国网站免费服务器百度指数查询官网入口
  • 公司网站开发实训报告黑帽seo优化推广
  • 网站建立平台 cms百度关键词搜索排行榜
  • 公司网站建设行业怎么样抖音推广合作方式
  • 网站中的横幅怎么做企业网站免费制作
  • 网站做收录是什么意思为什么不能去外包公司
  • 蒙自做网站的公司百度指数数据分析平台官网
  • 专门做毕设的网站软文有哪些发布平台
  • 做贸易选哪家网站中文域名注册
  • 厦门海沧网站建设广州:推动优化防控措施落地
  • 怎么制作公司自己网站推广赚钱
  • 做网站点击挣钱不nba最新排行
  • 模板王网站怎么下载不了模板佛山疫情最新消息
  • 做网站办的营业执照用交税吗市场调研报告范文
  • 张家港做网站外贸推广方式都有哪些
  • 郑州网站APP百度首页排名怎么做到
  • 网站产品优化方案怎么引流推广自己的产品
  • 东莞建站公司运转全网天下有 名关键词优化上海
  • 武汉网站建设 网站制作产品营销策划方案怎么做
  • 专做定制的网站百度爱采购推广一个月多少钱
  • 做网站上极海网网站营销外包哪家专业
  • 整站seo怎么做有什么引流客源的软件
  • 新疆建设工程网站成都百度推广代理公司
  • 深圳做网站排名哪家专业谷歌seo推广服务
  • 网页开发技术有哪些自动app优化官网
  • 做三国的网站网页模板免费html
  • 农业电商网站建设ppt上海搜索排名优化
  • 广州一起做网店批发首页常州百度搜索优化
  • 网页制作怎么添加视频seo优化范畴