CoinUtils
CoinUtils copied to clipboard
Compile issues because CoinByteArray is a pointer, no integer
I get errors with clang 10 like:
In file included from /local/hdd/cullmann/git/3rdparty/cbc/src/CoinUtils/src/CoinPackedVector.cpp:13: /local/hdd/cullmann/git/3rdparty/cbc/src/CoinUtils/src/CoinHelperFunctions.hpp: In function ‘void CoinMemcpyN(const T*, CoinByteArray, T*)’: /local/hdd/cullmann/git/3rdparty/cbc/src/CoinUtils/src/CoinHelperFunctions.hpp:331:57: error: invalid operands of types ‘const CoinByteArray’ {aka ‘int* const’} and ‘int’ to binary ‘operator>>’ 331 | for (CoinBigIndex n = static_cast<CoinBigIndex>(size>>3); n > 0; --n, from += 8, to += 8) { | ~~~~^~~ | | | | | int | const CoinByteArray {aka int* const} /local/hdd/cullmann/git/3rdparty/cbc/src/CoinUtils/src/CoinHelperFunctions.hpp:341:16: error: invalid operands of types ‘const CoinByteArray’ {aka ‘int* const’} and ‘int’ to binary ‘operator%’ 341 | switch (size % 8) { | ~~~~ ^ ~ | | | | | int | const CoinByteArray {aka int* const}
I would assume you want to use a integer type of the right size instead.
Wouldn't size_t fit the bill?
It should be an integer large enough to be used as size/index of any allocated array in memory (both for 32 and 64 systems).
Looking at the definition of
#define CoinIntPtr COINUTILS_INTPTR_T
perhaps the issue is that my compile uses the config_coinutils_default.h
And there the definition of
COINUTILS_INTPTR_T
is either
#define COINUTILS_INTPTR_T ULONG_PTR
or
#define COINUTILS_INTPTR_T int *
instead of something like intptr_t
I changed it to intptr_t
for non-Windows in config_coinutils_default.h. Good luck.