【问题标题】:Forward declare a boost::multi_index_container object前向声明一个 boost::multi_index_container 对象
【发布时间】:2013-07-30 03:02:59
【问题描述】:

我一直在想如何转发声明boost::multi_index_container

multi_index目录中有multi_index_container_fwd.hppordered_index_fwd.hpp等。

它们应该隐藏在不需要知道对象细节的程序部分的实现,对吧?

但是,我想不出一种方法来单独使用这些 *_fwd.hpp 文件来声明 multi_index_container

我一直都包含完整的实现文件,multi_index_container.hpp 索引。

【问题讨论】:

    标签: c++ boost forward-declaration boost-multi-index


    【解决方案1】:

    原则上,您应该能够通过使用适当的 *_fwd.hpp 标头来转发声明,例如,依赖于 multi_index_container 类型的函数。但并非所有情况都可以这样处理:

    class A{
      ...
    private:
      multi_index_container<...>* p; // can use *_fwd.hpp headers
    };
    
    class B{
      ...
    private:
      multi_index_container<...> m; // needs full headers!!
    };
    

    这里的 Boost.MultiIndex 没有什么特别之处:每当您声明一个类型为 T 的变量时,其大小需要在编译时知道,您必须有完整的 T 定义。

    【讨论】:

    • 谢谢!这就是我需要的!
    猜你喜欢
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多