-
Notifications
You must be signed in to change notification settings - Fork 233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix some #344
fix some #344
Conversation
Hi @miyanyan |
以test_xml的simple test为例,生成的xml如下
标签里应该是不能加空格的吧,那么诸如 |
有的类的type_string输出带尖括号,xml标签里应该也是不允许的 |
之前测试是过的,看一下怎么适配一下msvc |
比如我构造一个
那么之前未修改时的clang
形成的字符串就是,这也是不允许的
也就是type_string无论修改与否,现有的测试都是不全面的,to_xml之类的写法也会存在问题。 关于如何修改:
|
ok 我看一下 |
我看了一下msvc下的主要问题是普通的struct/class/union/enum 等符号都会保留,我对msvc做一个适配,如果name存在空格并且空格之前的前缀不是const和volatile时,则把前缀去掉,其它情况不做任何处理。 这样就可以适配普通的非const 的class struct了,会把非const/volatile的struct/class等前缀符号去掉。你看下我的修改,看有没有问题。 https://www.godbolt.org/z/WW86o4xnb iguana 序列化会先把cv符都去掉的,所以不会有const volatile前缀字符串。 对于模版类型来说产生的尖括号的问题可以后面再改进,理论上不直接支持模版类型,如果要支持则可以通过设置其别名的方式绕过。参考:#347 |
没有问题,对普通类型应该是正常的 不过我看to_xml里有remove_cv和remove_ref,那么需不需要remove_pointer呢,clang的*是有空格的
|
不用管*,因为不支持裸指针。 |
related:alibaba/yalantinglibs#874