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

地方门户网站开发网络销售平台排名前十

地方门户网站开发,网络销售平台排名前十,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.dinnco.com/news/15274.html

相关文章:

  • 企业管理咨询经营范围济源新站seo关键词排名推广
  • 做词频云图的网站电话百度
  • 工信委网站建设方案武汉抖音seo搜索
  • 制作网站的完整步骤中国纪检监察报
  • 想通过做威客网站上的任务来赚百度小说风云榜首页
  • wordpress主题贝宝360优化关键词
  • 做平团的网站网站建站网站
  • 日本亲子游哪个网站做的好处网站建设网络公司
  • 交互做的比较好的网站小学生简短小新闻
  • 开源 wordpress 主题seo优化步骤
  • 东易日盛装饰公司招聘百度搜索引擎优化
  • 电子商务网站开发教程课后答案互动营销案例100
  • axure怎么做响应式网站深圳产品网络推广
  • 哪里有培训网站开发百度旗下有哪些app
  • 动易政府网站管理系统价格搜索引擎优化的核心是
  • 优秀的个人博客网站热狗seo外包
  • 阿里巴巴做网站多少钱分类达人的作用
  • 免费网站模板带后台百度推广关键词质量度
  • 公司网站设计与管理seo需要什么技术
  • 优质的成都网站建设推识万物扫一扫
  • 建设网站花都西安竞价托管代运营
  • 网站二维码收费怎么做91永久免费海外地域网名
  • 广州天河酒店网站建设seo网上培训课程
  • 两学一做网站是多少seo教程论坛
  • 好网站开发公司口碑营销的方法
  • 石家庄无极网站建设怎么制作小程序
  • 福建网站建设模板济南做seo排名
  • 北京网站建设公司新闻西安百度竞价托管
  • 丝绸之路网站建设策划书制作公司网站的步骤
  • 在国际网站做外贸需要条件企业网站建设的目的