【发布时间】:2018-07-16 08:04:00
【问题描述】:
大多数hana 标头还包括包含在子文件夹fwd 中的前向声明标头,例如#include<boost/hana/fwd/pair.hpp。
AFAIK 前向声明标头声明事物而不是定义事物,因此用户可以对函数和对象的指针(和引用)进行访问。
它对boost::hana 有什么意义,这是一个仅包含标头的模板库?我唯一想到的是,如果您不打算实例化已声明的模板,前向声明就足够了,但是 - 首先使用它们有什么意义?
通过查看库源,我觉得它非常聪明,但我仍然不理解。
想象一下,我只需要非常具体的 boost::hana 模板实例。如果我在一个翻译单元中定义并实例化它们,并使用前向声明从所有其他单元链接到它们,它会起作用吗?
【问题讨论】:
标签: c++ boost metaprogramming forward-declaration boost-hana