大佬教程收集整理的这篇文章主要介绍了c – 如何在编译时从类型创建静态字符串,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#define DEFINE_FOO(foo_) \ struct foo_ : public foo_base<foo_> { \ static char const* name() {return #foo_;} \ }
然后,这些类型在编译时列表(经典的简单递归编译时列表)中组合,从中我需要通过连接其对象的名称来创建列表的名称:
template<class Foo,class Tail = nil> struct foo_list { static std::string name_list() {return Foo::name() + "-" + Tail::name();} }; template<class Foo> struct foo_list<Foo,nil> { static std::string name_list() {return Foo::name();} };
除了它创建,然后在运行时复制相当长的字符串,代表在编译时实际上是众所周知的类型.由于这是在嵌入式设备上运行的性能敏感的一段代码,所以我想改变一下
>列表的字符串理想地在编译时创建,或者如果没有办法做到这一点,一次在运行时,和
>我只需要复制一个指向C字符串的指针,因为根据#1,字符串被固定在内存中.
>这与C 03汇编,我们现在卡住了.
我该怎么做?
(如果这扩大了可用于此的肮脏技巧的武器:foo对象的名称只能由代码创建和读取,并且只有foo_list名称字符串预期是人类可读的.)
以上是大佬教程为你收集整理的c – 如何在编译时从类型创建静态字符串全部内容,希望文章能够帮你解决c – 如何在编译时从类型创建静态字符串所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。