Addressing mwArrays Above the 2 GB Limit

In R2007b, you had to define MX_COMPAT_32_OFF in the mbuild step to address MWArrays above the 2 GB limit on 64-bit architectures. If you did not define MX_COMPAT_32_OFF, the compile time variable MX_COMPAT_32 was defined for you, limiting you to using smaller arrays on all architectures.

In R2008a, the default definition of MX_COMPAT_32 was removed, and large array support is now the default for both C and C++ code. This default may, in some cases, cause compiler warnings and errors. You can define MX_COMPAT_32 in your mbuild step to return to the previously default behavior.

Code compiled with MX_COMPAT_32 is not 64-bit aware. In addition, MX_COMPAT_32 controls the behavior of some type definitions. For instance, when MX_COMPAT_32 is defined, mwSize and mwIndex are defined to ints. When MX_COMPAT_32 is not defined, mwSize and mwIndex are defined to size_t. This can lead to compiler warnings and errors with respect to signed and unsigned mismatches.

In R2008b, all support for MX_COMPAT_32 will be removed.

See C++ Utility Library Reference, for detailed changes to mwArray classes and method signatures.

  


 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS