Pointer acrobatics to workaround MSVC 7.1 problem.

v0.27.3
Andreas Huggel 16 years ago
parent 7ba7daa5f6
commit 3662c29f16

@ -1512,15 +1512,16 @@ namespace Exiv2 {
//! Function to create and initialize a new binary array entry
template<const ArrayCfg* arrayCfg, int N, const ArrayDef (&arrayDef)[N]>
TiffComponent::AutoPtr newTiffBinaryArray(uint16_t tag, uint16_t group)
TiffComponent::AutoPtr newTiffBinaryArray0(uint16_t tag, uint16_t group)
{
// *& acrobatics is a workaround for a MSVC 7.1 bug
return TiffComponent::AutoPtr(
new TiffBinaryArray(tag, group, arrayCfg, arrayDef, N));
new TiffBinaryArray(tag, group, arrayCfg, *(&arrayDef), N));
}
//! Function to create and initialize a new simple binary array entry
template<const ArrayCfg* arrayCfg>
TiffComponent::AutoPtr newTiffBinaryArray(uint16_t tag, uint16_t group)
TiffComponent::AutoPtr newTiffBinaryArray1(uint16_t tag, uint16_t group)
{
return TiffComponent::AutoPtr(
new TiffBinaryArray(tag, group, arrayCfg, 0, 0));

@ -271,8 +271,8 @@ namespace Exiv2 {
} // namespace Exiv2
// Shortcuts for the newTiffBinaryArray templates.
#define EXV_BINARY_ARRAY(arrayCfg, arrayDef) (newTiffBinaryArray<&arrayCfg, EXV_COUNTOF(arrayDef), arrayDef>)
#define EXV_SIMPLE_BINARY_ARRAY(arrayCfg) (newTiffBinaryArray<&arrayCfg>)
#define EXV_BINARY_ARRAY(arrayCfg, arrayDef) (newTiffBinaryArray0<&arrayCfg, EXV_COUNTOF(arrayDef), arrayDef>)
#define EXV_SIMPLE_BINARY_ARRAY(arrayCfg) (newTiffBinaryArray1<&arrayCfg>)
#define EXV_COMPLEX_BINARY_ARRAY(arraySet, cfgSelFct) (newTiffBinaryArray2<arraySet, EXV_COUNTOF(arraySet), cfgSelFct>)
namespace Exiv2 {

Loading…
Cancel
Save