【问题标题】:how to replace bvector header for version g++5如何替换 g++5 版本的 bvector 标头
【发布时间】:2015-12-26 00:17:16
【问题描述】:

使用预定义标头的算法,该算法是 2005 年的旧算法,我认为它是为旧 g++4.2.1 实现的,因为在 g++5 中你找不到 bvector.h 标头 老版本可以在/usr/include/c++/4.2.1/backward/bvector.h找到,如何获取这个header,或者在新g++版本中替换成哪个header,会报错:

#include<bvector.h>
#include<iostream>
 .....

如何更换?

【问题讨论】:

    标签: c++ ubuntu installation g++


    【解决方案1】:

    查看你的旧版本 - 如果你的代码曾经编译过,你必须有带有这个头文件的 gcc4.2.1 - 看看它做了什么。

    它是否为vector&lt;bool&gt; 提供类型定义?只需移植您的代码以直接使用vector&lt;bool&gt;。如果您必须复制 typedef,请不要尝试将其添加到 namespace std

    【讨论】:

      【解决方案2】:

      libstdc++ patch 看来,旧的 typedef 与此类似:

      typedef std::vector<bool, std::allocator<bool> > bit_vector;
      

      应该可以直接复制,看起来这个补丁的一部分最终被删除,正如我们从follow-up 中看到的那样,这与它现在不可用的事实相符。

      这个旧的gcc bug report 也建议用vector&lt;bool&gt; 替换它。

      【讨论】:

        猜你喜欢
        • 2013-12-08
        • 1970-01-01
        • 2016-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多