Windows target error: 3 overloads have similar conversions

I’ve been going through the process of porting my game from AS3 to Haxe and targeting windows. I’m now running into errors coming from the haxe headers themselves:

C:\HaxeToolkit\haxe\lib\hxcpp\3,4,188\include\hx/Operators.h(293): error C2666: ‘hx::operator !=’: 3 overloads have similar conversions

I updated everything and did a fresh install just to be sure. I’m using haxe 3.4.4, lime 5.9.1, and openfl 6.5.2, and am working in FlashDevelop.

The issue is probably on my end, I ported a lot of code over so it’s very possible that I messed up somewhere, but I’m having a hard time making sense of the output since it’s not complaining about my haxe code itself. Any help is appreciated!

Full output

Error: EndCreditsScreen.cpp
C:\HaxeToolkit\haxe\lib\hxcpp\3,4,188\include\hx/Operators.h(293): error C2666: ‘hx::operator !=’: 3 overloads have similar conversions
C:\HaxeToolkit\haxe\lib\hxcpp\3,4,188\include\hx/FieldRef.h(269): note: could be 'bool hx::operator !=(const Dynamic &,const hx::IndexRef &)'
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\null.h(206): note: or ‘bool operator !=(bool,const null &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\null.h(207): note: or ‘bool operator !=(double,const null &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\null.h(208): note: or ‘bool operator !=(float,const null &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\null.h(209): note: or ‘bool operator !=(int,const null &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\null.h(210): note: or ‘bool operator !=(unsigned int,const null &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\null.h(211): note: or ‘bool operator !=(short,const null &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\null.h(212): note: or ‘bool operator !=(unsigned short,const null &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\null.h(213): note: or ‘bool operator !=(signed char,const null &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\null.h(214): note: or ‘bool operator !=(unsigned char,const null &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\null.h(215): note: or ‘bool operator !=(cpp::UInt64,const null &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\null.h(216): note: or ‘bool operator !=(cpp::Int64,const null &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\Dynamic.h(424): note: or ‘bool operator !=(const String &,const Dynamic &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\Dynamic.h(425): note: or ‘bool operator !=(const double &,const Dynamic &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\Dynamic.h(426): note: or ‘bool operator !=(const float &,const Dynamic &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\Dynamic.h(427): note: or ‘bool operator !=(const int &,const Dynamic &)’ [found using argument-dependent lookup]
c:\haxetoolkit\haxe\lib\hxcpp\3,4,188\include\Dynamic.h(428): note: or ‘bool operator !=(const bool &,const Dynamic &)’ [found using argument-dependent lookup]
C:\HaxeToolkit\haxe\lib\hxcpp\3,4,188\include\hx/Class.h(64): note: or ‘bool operator !=(hx::ConstructEnumFunc,const null &)’ [found using argument-dependent lookup]
C:\HaxeToolkit\haxe\lib\hxcpp\3,4,188\include\hx/FieldRef.h(235): note: or 'bool hx::operator !=(T &,const hx::IndexRef &)'
with
[
VAL=hx::Object *,
T=hx::Object *
]
C:\HaxeToolkit\haxe\lib\hxcpp\3,4,188\include\hx/FieldRef.h(126): note: or 'bool hx::operator !=(T &,const hx::FieldRef &)'
with
[
VAL=hx::Object *,
T=hx::Object *
]
C:\HaxeToolkit\haxe\lib\hxcpp\3,4,188\include\hx/Operators.h(293): note: or 'built-in C++ operator!=(hx::Object *, hx::Object *)'
C:\HaxeToolkit\haxe\lib\hxcpp\3,4,188\include\hx/Operators.h(293): note: while trying to match the argument list ‘(hx::Object *, null)’
./src/userInterface/creditsSystem/EndCreditsScreen.cpp(98): note: see reference to function template instantiation ‘hx::ObjectPtropenfl::display::Bitmap_obj hx::TCastopenfl::display::Bitmap::casthx::Object*(VAL)’ being compiled
with
[
VAL=hx::Object *
]
./src/userInterface/creditsSystem/EndCreditsScreen.cpp(98): note: see reference to function template instantiation ‘hx::ObjectPtropenfl::display::Bitmap_obj hx::TCastopenfl::display::Bitmap::casthx::Object*(VAL)’ being compiled
with
[
VAL=hx::Object *
]

Which Visual Studio do you have installed?

I have the Visual Studio 2012 shell and Visual Studio Community 2017.

There might be a chance that a dev version of HXCPP has this issue fixed, or otherwise you might try a different Visual Studio by setting HXCPP_MSVC https://github.com/HaxeFoundation/hxcpp/blob/master/toolchain/msvc-setup.bat#L2