首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >名称空间中的CodeSynthesis C++Tree 'time‘::’不命名类型

名称空间中的CodeSynthesis C++Tree 'time‘::’不命名类型
EN

Stack Overflow用户
提问于 2014-08-25 08:12:01
回答 2查看 355关注 0票数 1

我正在尝试使用CodeSynthesis C++/Tree将一个xsd转换成C++类。在xsd中,有一个名为time的元素,如下所示:

代码语言:javascript
复制
<xs:element name="time">
<xs:complexType>
  <xs:attribute name="seconds" use="required" type="xs:double"/>
  ... other attributes
</xs:complexType>

在转换的C++头中,它被定义为:

代码语言:javascript
复制
typedef ::time time_type;

在编译时,它会给我一条错误消息:

代码语言:javascript
复制
'time' in namespace '::' does not name a type

但是,如果我将元素的名称更改为“times”或其他任何东西,它就会编译得很好。这种行为背后的原因可能是什么?非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-25 08:15:51

这是因为::timestd::time是一样的。

票数 0
EN

Stack Overflow用户

发布于 2014-09-12 00:48:52

好吧,现在我看了更多关于文档的内容,上面写着

“没有命名空间的词汇表被映射到全局范围。通过使用XML名称空间的空名称,也可以使用上面的选项来更改这一点:”

因此,解决方案是在将xsd转换为C++文件时添加以下内容

代码语言:javascript
复制
--namespace-map =cs
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25481630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档