sstream 重新声明并出现公共访问编译器错误

2024-02-29

我在使用 gcc5.4.0 在大型项目上运行 make 时遇到了此错误。

/usr/include/c++/5/sstream:300:14: error: '__xfer_bufptrs' redeclared with 'public' access
      struct __xfer_bufptrs
             ^
/usr/include/c++/5/sstream:67:14: note: previously declared 'private' here
      struct __xfer_bufptrs;

对我来说这似乎是编译器的问题?由于问题出现在标准 C++ 库 sstream 中?这对我来说没有意义,我使用了错误的编译器吗?

以下是错误消息引用的代码片段:

1.) sstream 从第 67 行开始

class basic_stringbuf : public basic_streambuf<_CharT, _Traits>                                   
    {                                                                                                 
      struct __xfer_bufptrs;                                                                          
    public:                                                                                           

2.) 第 300 行处的流

#if _GLIBCXX_USE_CXX11_ABI                                                                            
      // This type captures the state of the gptr / pptr pointers as offsets                          
      // so they can be restored in another object after moving the string.                           
      struct __xfer_bufptrs                                                                           
      {                                                                                               
        __xfer_bufptrs(const basic_stringbuf& __from, basic_stringbuf* __to)                          
        : _M_to{__to}, _M_goff{-1, -1, -1}, _M_poff{-1, -1, -1}                                       
        {  

我知道标准库不会有任何问题,那么为什么它会抛出错误呢?

这是我得到的最接近的答案:https://github.com/PacificBiosciences/pbbam/issues/14 https://github.com/PacificBiosciences/pbbam/issues/14

答案似乎围绕着这些“Dprivate”和“Dpublic”标志。我认为是编译器标志,但我不确定它们的作用。


尽管 github 上的帖子恰到好处,但似乎忽略了原因。您很可能正在项目中构建一些单元或其他测试来重新定义“private”关键字,如下所示:

#define private public

或者通过命令执行相应的操作,例如(-Dprivate=public)。这是一种常用的做法,公开私有成员进行测试,而不使被测试的代码依赖于测试代码。 不过看看你的片段。第一个声明__xfer_bufptrs无论您的定义如何,都是私有的private。接下来的第二个片段肯定是(虽然还没有检查)明确的private堵塞。现在,如果您对私有的定义到位,您将需要public在第二个片段中,这是一个错误。

你至少有两个选择,其他当然也是可能的:

  1. You #undef包含系统标头之前的私有定义并在包含这些标头之后再次定义,或者
  2. 您可以使用另一个宏来定义您自己的私有/公共部分,例如:#define my_public public可以随意重新定义。不过这个解决方案看起来很恶心;)

哦,将来在您自己的代码中始终使用显式访问限定,以避免至少在您自己的代码中出现这种混乱:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sstream 重新声明并出现公共访问编译器错误 的相关文章

  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • 迭代变量并查找特定类型实例的技术

    我想迭代进程中内存中的变量 通过插件动态加载 并查找特定类型的实例 以前我可以找到特定类型 或内存中的所有类型 我可以创建类型的实例 我可以获取作为不同类型的字段包含的实例 但我无论如何都不知道只是 搜索 特定类型的实例 一种方法是使用 W
  • Clang 编译器 (x86):80 位长双精度

    我正在尝试在 x86 Windows 平台上使用本机 80 位长双精度 海湾合作委员会选项 mlong double 80 https gcc gnu org onlinedocs gcc x86 Options html似乎不适用于 cl
  • 显示异常时的自定义错误消息:从客户端检测到潜在危险的 Request.Form 值

    我在我的 Web 应用程序中使用 ASP NET 的登录控件 当发生此异常时 我想在标签上显示一种有趣的错误类型System Web HttpRequestValidationException A potentially dangerou
  • 如何使用recv()检测客户端是否仍然连接(并且没有挂起)?

    我写了一个多客户端服务器程序C on SuSE Linux 企业服务器 12 3 x86 64 我为每个客户端使用一个线程来接收数据 我的问题是 我使用一个终端来运行服务器 并使用其他几个终端来运行服务器telnet到我的服务器 作为客户端
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • C 语言中 =+(等于加)是什么意思?

    我碰到 与标准相反 今天在一些 C 代码中 我不太确定这里发生了什么 我在文档中也找不到它 In ancientC 版本 相当于 它的残余物与最早的恐龙骨头一起被发现 例如 B 引入了广义赋值运算符 使用x y to add y to x
  • Qt 创建布局并动态添加小部件到布局

    我正在尝试在 MainWindow 类中动态创建布局 我有四个框架 它们是用网格布局对象放置的 每个框架都包含一个自定义的 ClockWidget 我希望 ClockWidget 对象在调整主窗口大小时相应地调整大小 因此我需要将它们添加到
  • 如何在c#中的内部类中访问外部类的变量[重复]

    这个问题在这里已经有答案了 我有两个类 我需要声明两个类共有的变量 如果是嵌套类 我需要访问内部类中的外部类变量 请给我一个更好的方法来在 C 中做到这一点 示例代码 Class A int a Class B Need to access
  • 为什么我不应该对不是由 malloc() 分配的变量调用 free() ?

    我在某处读到 使用它是灾难性的free删除不是通过调用创建的对象malloc 这是真的 为什么 这是未定义的行为 永远不要尝试它 让我们看看当您尝试时会发生什么free 自动变量 堆管理器必须推断出如何获取内存块的所有权 为此 它要么必须使
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 当我“绘制”线条时,如何将点平均分配到 LineRenderer 的宽度曲线?

    我正在使用线条渲染器创建一个 绘图 应用程序 现在我尝试使用线条渲染器上的宽度曲线启用笔压 问题在于 AnimationCurve 的 时间 值 水平轴 从 0 标准化为 1 因此我不能在每次添加位置时都在其末尾添加一个值 除非有一个我不知
  • 如何挤出平面 2D 网格并赋予其深度

    我有一组共面 连接的三角形 即二维网格 现在我需要将其在 z 轴上挤出几个单位 网格由一组顶点定义 渲染器通过与三角形数组匹配来理解这些顶点 网格示例 顶点 0 0 0 10 0 0 10 10 0 0 10 0 所以这里我们有一个二维正方
  • 有没有一种简单的方法可以让 Visual Studio 2015 使用特定的 ToolsVersion?

    使用特定版本构建项目或解决方案时msbuild我可以使用以下命令选择早期的 net 工具链 toolsversion or tv switch C Program Files x86 MSBuild 14 0 bin msbuild tv
  • 是否可以有一个 out ParameterExpression?

    我想定义一个 Lambda 表达式out范围 有可能做到吗 下面是我尝试过的 C Net 4 0 控制台应用程序的代码片段 正如您在 procedure25 中看到的 我可以使用 lambda 表达式来定义具有输出参数的委托 但是 当我想使
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • strcmp 给出分段错误[重复]

    这个问题在这里已经有答案了 这是我的代码给出分段错误 include
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder

随机推荐

  • 使用动态库进行 Objective C Method Swizzling

    我正在尝试学习方法调整 我在 Objective C 中创建了一个程序 它只调用其类中的一个方法 现在我正在尝试使用 DYLD INSERT LIBRARIES 加载动态库 以便我可以使用动态库中定义的新方法覆盖我的方法实现 目的是修改参数
  • 如何使用“concurrent.futures.ProcessPoolExecutor”取消长时间运行的子进程?

    你可以看到完整的here https github com traverseda rratbot blob master main py L35 我的代码的简化版本如下 executor ProcessPoolExecutor 10 try
  • 如何在 pl/sql 中的另一个游标的 select 语句中使用游标中的变量

    我想运行一个查询 获取结果 然后使用第二个语句 光标 中第一个语句的值与另一个 select 语句迭代该查询的结果 我的数据库中有 40 个用户 所有用户都具有相同的数据库模式结构 我想通过以下方式获取用户名 SELECT distinct
  • 在 PowerShell 中使用 StreamWriter 附加到文件

    我创建了一个 PowerShell 脚本 该脚本使用 StreamWriter 将 Windows 中文件夹的权限结果写入 CSV 文件 目前 该脚本为每个文件夹创建一个新文件 我的问题是 StreamWriter 是否可以附加到文件而不是
  • FirebaseCore 词法或预处理器问题

    所以我在使用 firebase 编译我的项目时遇到了问题 这个问题是在我更新所有 firebase pod 后开始的 自从我更新了 pod 后 我就一直收到此错误 词法或预处理器问题 然后当我转到错误是什么时 它说这个 找不到 Google
  • 对 kafka 消费者进行负载测试

    我试图弄清楚如何对卡夫卡消费者进行负载测试 在我的应用程序中 消费者从 kafka 读取消息并做了很多工作 其中大部分是在数据库中写入内容 由于这对我的团队来说是一个重要的过程 因此我希望能够对消费者进行负载测试 并能够获得一些有关消费情况
  • 将多行合并为一行以替换列中的空值

    如何将多行合并为一行 以便一行中的某些列替换要合并的另一行中相同列中的空值 这是我所拥有的和我想要实现的目标的一个例子 查询是 SELECT Drug Name DefaultVendor Name Drug Strength Catalo
  • AndroidrelativeLayoutalignTop不起作用

    我正在尝试在RelativeLayout 中使用alignTop 属性 以便将文本设置在个人资料图片的右侧 与图片的顶部对齐 这是我的布局
  • 将文本添加到 DataGridView 行标题

    C 是否允许将字符串添加到 DataGridView 中的 RowHeader 如果是的话 是如何实现的呢 我正在编写一个 Windows 窗体来显示今年迄今为止的客户付款数据 ColumnHeaders 显示一月 二月 三月等 而不是有一
  • 如何避免 JavaScript 中的短路求值?

    我需要执行两边 声明 但如果第一部分返回 则不会发生这种情况false 例子 function doSomething x console log x function checkSomething x var not1 x 1 if no
  • 如何保护客户端/服务器套接字通信的安全

    假设客户端和服务器应用程序在不同的计算机上运行 Today Server will receive the request and cast it as needed ProxyResponse message ProxyResponse
  • docker buildx“执行用户进程导致:执行格式错误”

    我正在尝试交叉编译一个 Rust 应用程序以在我的树莓派集群上运行 我看到 docker 的 buildx 应该能够使这成为可能 我现在有一个最小的 dockerfile 如下所示 FROM rust RUN apt get update
  • 在本地工作的 R 脚本不适用于shinyapp.io

    我正在尝试组装一个 R Shiny 应用程序 至少在最初 它可以绘制日期数据的直方图 我让它在 RStudio 的本地系统上工作得很好 但在闪亮的应用程序 io 中它不起作用 目前 该应用程序非常简单 用户界面实际上没有做任何事情 数据只是
  • Jupyter 上 Sparkcollect() 的 IllegalArgumentException

    我设置了 Jupyter 4 3 0 Python 3 6 3 Anaconda 和 PySpark 2 2 1 以下示例在通过 Jupyter 运行时将失败 sc SparkContext getOrCreate rdd sc paral
  • 如何获取两个列表之间的所有唯一分配

    我有两个列表 每个列表都可以包含重复的值 但任何值只能出现在这两个列表之一 或没有 中 A 0 1 B 2 3 我想获得这两个列表之间的所有唯一映射 assignment A B 0 2 1 3 0 3 1 2 我知道这可以例如使用 ite
  • 如何解决 MSCV 中 Boost 文件系统库的 LNK1104 错误?

    我无法将我的项目链接到 Microsoft Visual C 2008 Express Edition 中的 Boost 版本 1 37 0 文件系统 lib 文件 文件系统库是not仅标头库 我一直在关注Windows 入门 http w
  • 如何处理pygame中不同组件的时间

    我正在制作一个 pygame 游戏 人们可以从商店购买炸弹 玩家还可以投下购买的炸弹数量 我需要一种方法让每个炸弹在投下 3 秒后消失 在下面的代码中 我只能投下炸弹 但是我尝试了各种方法但失败了 import pygame import
  • 使用 .NET Core 的 Linux/Unix 上的文件权限

    我正在尝试学习如何使用 NET Core 在 Linux Unix 上设置文件权限 我已经在这里发现了一个问题 它指出了 System IO FileSystem 的方向 但我似乎找不到任何有关如何使用它的文档 简而言之 我想从仅在 Lin
  • 在 React Native 应用程序中发送应用程序邀请

    在 facebook iOS SDK 中 有一个名为 App Invites 的模块 允许将您的应用程序的邀请发送给您的朋友 https developers facebook com docs ios https developers f
  • sstream 重新声明并出现公共访问编译器错误

    我在使用 gcc5 4 0 在大型项目上运行 make 时遇到了此错误 usr include c 5 sstream 300 14 error xfer bufptrs redeclared with public access stru