c++ - 有没有办法允许在 C++ 中进行隐式转换?

标签 c++ c

我需要在 C++/CLI 项目中使用 C 库的一部分。我强制将 c 文件编译为 c++,问题是该库使用了很多 c++ 不允许的隐式枚举与整数比较。现在我可以正确地转换所有这些,但我希望尽可能在不修改原始库代码的情况下获得结果(因为该库仍在开发中,我希望具有即插即用功能)。有没有办法允许 C++ 隐式转换这些枚举?

最佳答案

迂腐的回答是

C++ 标准在这方面比 C 标准更严格,从整数到枚举数或从 void*T* 的隐式转换在盒子。


您面前有几个解决方案:

  • 您的编译器可能有这样的开关,编译器开关触发非标准行为(通常被视为“功能”)的情况并不少见;我不知道有这样的开关,但有很多...
  • 您可以将 C 代码编译为 C(如有必要,可能链接到一个单独的库)
  • 您可以编辑 C 代码,使其同时编译为 C 和 C++
  • 最后,由于它是一个开发中的库,您可以要求作者确保他们的代码可以编译为 C 和 C++

关于c++ - 有没有办法允许在 C++ 中进行隐式转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25177319/

相关文章:

c - 如何在套接字连接中接收 tcp 标志

c++ - C++ 中的平方数,Kaprekar 数

c++ - Rapidxml 和 UTF8

python - PyVarObject 的实际使用,cpython 的 PyObject 的可变长度子类型

c - 错误 : conflicting types for user made function in c program

c - 查找数组中未出现两次的整数

c++ - 在 C++ 中强制执行语句顺序

c++ - 在类模板中为成员函数定义单个模板,并在成员函数中使用两个模板

c++ - 为什么 puts() 函数没有在客户端 - 服务器套接字代码中打印多个输出?

c++ - 二维数组的数组