[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
This commit is contained in:
Binh-Minh Ribler
2002-02-24 23:34:54 -05:00
parent cebd817ae9
commit bf543b4edb
2 changed files with 4 additions and 1 deletions

View File

@@ -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 ) {}