gpt4 book ai didi

C++运算符的多重定义>>

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:33 26 4
gpt4 key购买 nike

我正在使用@Martin 为 csv parsing with C++ 提出的解决方案,因为我试图避免在我当前的项目中使用 boost 等库。我已将他的实现放在“csv.h” header 中,并试图将其包含在其他一些文件中。我不断收到以下错误

multiple definition of operator>>(std::basic_istream<char, std::char_traits<char> >&, CSVRow&)

当我尝试构建项目时 - 我假设发生这种情况是因为重新定义了 operator>>与原版冲突。我怎样才能让这两个玩得很好?谢谢。

最佳答案

您有可能在多个编译单元(即 cpp 文件)中包含相同的运算符,因此您会生成相同的代码,链接器会查看所有 .obj 文件以将它们放在一起并看到多个。

您有 3 个选择:

  • 将其标记为静态 - 这将使运算符仅对文件可见它在。
  • 将其标记为内联 - 这得到去掉函数并插入使用时的代码。
  • 把标题和正文中的原型(prototype)在它自己的 cpp 文件中。

关于C++运算符的多重定义>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com