COMP: erroneous double definition for long IO on windows (#1360, #1238)

- mingw uses 32-bit long regardless of -m32 or -m64 setting
This commit is contained in:
Mark Olesen
2019-07-08 13:34:16 +02:00
committed by Andrew Heather
parent eaacf0a20a
commit ff3b9501d9
2 changed files with 3 additions and 3 deletions

View File

@ -119,10 +119,10 @@ inline bool read(const std::string& str, int64_t& val)
Istream& operator>>(Istream& is, int64_t& val);
Ostream& operator<<(Ostream& os, const int64_t val);
// On Darwin and Windows (mingw):
// On Darwin:
// long is not unambiguously (int32_t | int64_t)
// - explicitly resolve for input and output
#if defined(__APPLE__) || defined(_WIN32)
#if defined(__APPLE__)
Istream& operator>>(Istream& is, long& val);
Ostream& operator<<(Ostream& os, const long val);
#endif

View File

@ -125,7 +125,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const int64_t val)
}
#if defined(__APPLE__) || defined(_WIN32)
#if defined(__APPLE__)
Foam::Istream& Foam::operator>>(Istream& is, long& val)
{
return operator>>(is, reinterpret_cast<int64_t&>(val));