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

时间:2014-08-07 08:09:02

标签: c++ c

我需要在C ++ / CLI项目中使用C库的各个部分。我强迫c文件编译为c ++,问题是库使用了很多隐式枚举来进行整数比较,而c ++不允许这样做。现在我可以正确地投射所有这些,但我想在不修改原始库代码的情况下实现结果(如果可能的话)(因为库仍在开发中并且我希望具有即插即用功能) 。有没有办法让c ++隐式转换这些枚举?

1 个答案:

答案 0 :(得分:1)

pedant的回答是

在这方面,C ++标准比C标准更严格,从整数到枚举或从void*T*的隐式强制转换不能立即使用。


您前面有几个解决方案:

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