From bf543b4edb0310a9e39c9f8ae57a4c45d44d5422 Mon Sep 17 00:00:00 2001 From: Binh-Minh Ribler Date: Sun, 24 Feb 2002 23:34:54 -0500 Subject: [svn-r5005] Purpose: DLL accommodation Description: In the inline constructor below: DSetCreatPropList() : PropList( H5P_DATASET_CREATE) {} H5P_DATASET_CREATE causes the famous "unresolved symbol" error when building the Release version of dsets_cpp with DLL. H5P_DATASET_CREATE uses H5P_CLS_DATASET_CREATE_g, which is imported from hdf5dll. The inline constructor used in dsets.cpp causes the use of H5P_CLS_DATASET_CREATE_g, which is then considered undefined because dsets_cppdll is not using hdf5dll. This only occurs in the Release version because the Debug build disables inline. Solution: Made the affected constructor not inlined, i.e., its implementation went in the cpp file. Note that this problem does not occur in 1.4 branch because H5P_DATASET_CREATE was defined differently, i.e., did not involve external storage. Platforms tested: SunOS 5.7 (arabica) Linux 6.2 (eirene) Windows 2000 --- c++/src/H5DcreatProp.cpp | 3 +++ c++/src/H5DcreatProp.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/c++/src/H5DcreatProp.cpp b/c++/src/H5DcreatProp.cpp index 4f3d2e4..a323f72 100644 --- a/c++/src/H5DcreatProp.cpp +++ b/c++/src/H5DcreatProp.cpp @@ -15,6 +15,9 @@ namespace H5 { const DSetCreatPropList DSetCreatPropList::DEFAULT( H5P_DEFAULT ); +// Creates a dataset creation property list +DSetCreatPropList::DSetCreatPropList() : PropList( H5P_DATASET_CREATE) {} + // Copy constructor: makes a copy of the original DSetCreatPropList object; DSetCreatPropList::DSetCreatPropList( const DSetCreatPropList& orig ) : PropList( orig ) {} diff --git a/c++/src/H5DcreatProp.h b/c++/src/H5DcreatProp.h index 1c164b1..759c6ce 100644 --- a/c++/src/H5DcreatProp.h +++ b/c++/src/H5DcreatProp.h @@ -11,7 +11,7 @@ class __DLLCPP__ DSetCreatPropList : public PropList { static const DSetCreatPropList DEFAULT; // Creates a dataset creation property list - DSetCreatPropList() : PropList( H5P_DATASET_CREATE) {} + DSetCreatPropList(); // Copy constructor: creates a copy of a DSetCreatPropList object; // often used by the compiler when passing by value occurs. -- cgit v0.12