Я могу скомпилировать этот фрагмент кода в C++ Builder 6.В чем разница между C++ Builder 6 и C++ Builder Seatle для метода IntToStr?
Но я не могу скомпилировать в студию Rad Studio C++ Builder.
unsigned long x = 50;
String s = IntToStr(x);
[bcc32 Error] unit1.cpp (55): E2015 неоднозначность между «_fastcall System :: SysUtils :: IntToStr (INT) в C: \ Program Files (x86) \ Embarcadero \ студия \ 17.0 \ include \ windows \ rtl \ System.SysUtils.hpp: 3182 ' и' _fastcall System :: Sysutils :: IntToStr (__ int64) в c: \ program files (x86) \ embarcadero \ studio \ 17.0 \ include \ windows \ rtl \ System.SysUtils.hpp: 3183 '
Также я проверил это определение IntToStr.
C++ Builder 6
extern PACKAGE AnsiString __fastcall IntToStr(int Value)/* overload */;
extern PACKAGE AnsiString __fastcall IntToStr(__int64 Value)/* overload */;
C++ Builder Seatle
extern DELPHI_PACKAGE System::UnicodeString __fastcall IntToStr(int Value)/* overload */;
extern DELPHI_PACKAGE System::UnicodeString __fastcall IntToStr(__int64 Value)/* overload */;
extern DELPHI_PACKAGE System::UnicodeString __fastcall UIntToStr(unsigned Value)/* overload */;
extern DELPHI_PACKAGE System::UnicodeString __fastcall UIntToStr(unsigned __int64 Value)/* overload */;
В чем разница между C++ Builder 6 и C++ Builder Seatle?
Я знаю, что метод IntToStr - это перегрузки и разные типы аргументов. Но Интересно, что разница между C++ builder 6 и C++ builder seatle. –
Builder 6 неявно выдал неподписанные значения одному из подписанных типов, новые Builders (начиная с 2010 года) не делают этого по умолчанию, вам нужно явно передать его подзаголовному типу или использовать неподписанные альтернативы. –
Если это решение работает, пожалуйста, не забудьте его проголосовать и отметить как ответ –