如何解决从模块导出概念
我对C ++模块和概念交互一无所获。从模块导出概念的语法正确吗?
export module Module;
template <typename S>
export concept sequence = true;
解决方法
export
导出声明。概念定义是声明,因此可以导出。就这种导出工作的结果而言,它的作用就像导出任何其他声明一样。
至于特定语法,export
应用于“声明”语法规则。而“模板声明”是一种“声明”。 “模板声明”包括模板头,但是“模板声明”的语法定义是it's a "template-head" followed by a "declaration" 或“模板头”后跟“概念定义”
因此仅从语法上来说,如果您想export
概念定义,就必须在模板标头之前完成,因为concept-definition
不包含export
作为有效语法
但是,如果您想导出常规模板,可能会认为export
可能来自此语法,而可能位于“模板头”之前或之后。 但是,standard specifically says this:
[模板声明的] 声明不应是 export-declaration 。
由此,我们得出结论,所有模板将export
放在模板头之前。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。